diff --git a/libs/iojobs/iojobdata.cpp b/libs/iojobs/iojobdata.cpp index fdda50093c..ffcf97f730 100644 --- a/libs/iojobs/iojobdata.cpp +++ b/libs/iojobs/iojobdata.cpp @@ -1,208 +1,219 @@ /* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2018-02-24 * Description : Container for IOJob data. * * Copyright (C) 2018 by Maik Qualmann * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; * either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * ============================================================ */ #include "iojobdata.h" // Local includes #include "album.h" #include "imageinfo.h" #include "digikam_debug.h" namespace Digikam { class IOJobData::Private { public: Private() : operation(0), srcAlbum(0), destAlbum(0) { } int operation; PAlbum* srcAlbum; PAlbum* destAlbum; QList imageInfoList; QList sourceUrlList; + QList processedUrlList; QUrl destUrl; }; IOJobData::IOJobData(int operation, const QList& infos, PAlbum* const dest) : d(new Private) { d->operation = operation; d->destAlbum = dest; setImageInfos(infos); if (d->destAlbum) { d->destUrl = d->destAlbum->fileUrl(); } } IOJobData::IOJobData(int operation, const QList& urls, PAlbum* const dest) : d(new Private) { d->operation = operation; d->sourceUrlList = urls; d->destAlbum = dest; if (d->destAlbum) { d->destUrl = d->destAlbum->fileUrl(); } } IOJobData::IOJobData(int operation, PAlbum* const src, PAlbum* const dest) : d(new Private) { d->operation = operation; d->srcAlbum = src; d->destAlbum = dest; d->sourceUrlList.clear(); if (d->srcAlbum) { d->sourceUrlList << d->srcAlbum->fileUrl(); } if (d->destAlbum) { d->destUrl = d->destAlbum->fileUrl(); } } IOJobData::IOJobData(int operation, const QList& urls, const QUrl& dest) : d(new Private) { d->operation = operation; d->sourceUrlList = urls; d->destUrl = dest; } IOJobData::IOJobData(int operation, const ImageInfo& info, const QString& newName) : d(new Private) { d->operation = operation; setImageInfos(QList() << info); d->destUrl = srcUrl().adjusted(QUrl::RemoveFilename); d->destUrl.setPath(d->destUrl.path() + newName); } IOJobData::~IOJobData() { delete d; } void IOJobData::setImageInfos(const QList& infos) { d->imageInfoList = infos; d->sourceUrlList.clear(); foreach(const ImageInfo& info, d->imageInfoList) { d->sourceUrlList << info.fileUrl(); } } void IOJobData::setSourceUrls(const QList& urls) { d->sourceUrlList = urls; } void IOJobData::setDestUrl(const QUrl& url) { d->destUrl = url; } +void IOJobData::addProcessedUrl(const QUrl& url) +{ + d->processedUrlList << url; +} + int IOJobData::operation() const { return d->operation; } PAlbum* IOJobData::srcAlbum() const { return d->srcAlbum; } PAlbum* IOJobData::destAlbum() const { return d->destAlbum; } QUrl IOJobData::srcUrl() const { if (d->sourceUrlList.isEmpty()) { return QUrl(); } return d->sourceUrlList.first(); } QUrl IOJobData::destUrl() const { return d->destUrl; } ImageInfo IOJobData::imageInfo() const { if (d->imageInfoList.isEmpty()) { return ImageInfo(); } return d->imageInfoList.first(); } QList IOJobData::sourceUrls() const { return d->sourceUrlList; } QList IOJobData::imageInfos() const { return d->imageInfoList; } +QList IOJobData::processedUrls() const +{ + return d->processedUrlList; +} + } // namespace Digikam diff --git a/libs/iojobs/iojobdata.h b/libs/iojobs/iojobdata.h index 42923521b0..01aeac4922 100644 --- a/libs/iojobs/iojobdata.h +++ b/libs/iojobs/iojobdata.h @@ -1,103 +1,107 @@ /* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2018-02-24 * Description : Container for IOJob data. * * Copyright (C) 2018 by Maik Qualmann * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; * either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * ============================================================ */ #ifndef IOJOB_DATA_H #define IOJOB_DATA_H // Qt includes #include #include namespace Digikam { class PAlbum; class ImageInfo; class IOJobData { public: enum Operation { CopyAlbum = 1 << 0, CopyImage = 1 << 1, CopyFiles = 1 << 2, MoveAlbum = 1 << 3, MoveImage = 1 << 4, MoveFiles = 1 << 5, Rename = 1 << 6, Delete = 1 << 7, Trash = 1 << 8, }; explicit IOJobData(int operation, const QList& infos, PAlbum* const dest = 0); explicit IOJobData(int operation, const QList& urls, PAlbum* const dest = 0); explicit IOJobData(int operation, PAlbum* const src, PAlbum* const dest); explicit IOJobData(int operation, const QList& urls, const QUrl& dest); explicit IOJobData(int operation, const ImageInfo& info, const QString& newName); ~IOJobData(); void setImageInfos(const QList& infos); void setSourceUrls(const QList& urls); void setDestUrl(const QUrl& url); - int operation() const; + void addProcessedUrl(const QUrl& url); - PAlbum* srcAlbum() const; - PAlbum* destAlbum() const; + int operation() const; - QUrl srcUrl() const; - QUrl destUrl() const; + PAlbum* srcAlbum() const; + PAlbum* destAlbum() const; - ImageInfo imageInfo() const; + QUrl srcUrl() const; + QUrl destUrl() const; - QList sourceUrls() const; - QList imageInfos() const; + ImageInfo imageInfo() const; + + QList sourceUrls() const; + QList imageInfos() const; + + QList processedUrls() const; private: class Private; Private* const d; }; } // namespace Digikam #endif // IOJOB_DATA_H