[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [digikam/frameworks] libs: Make passing arguments to ParallelWorkers work again by fixing a porting
From: Marcel Wiesweg <marcel.wiesweg () gmx ! de>
Date: 2015-09-11 12:55:46
Message-ID: E1ZaNrm-0001D0-At () scm ! kde ! org
[Download RAW message or body]
Git commit 26d165d8b2c52a001475516ab2e64dccd7d773ab by Marcel Wiesweg.
Committed on 11/09/2015 at 12:55.
Pushed by mwiesweg into branch 'frameworks'.
Make passing arguments to ParallelWorkers work again by fixing a porting
regression due to a silent API change in QT (QMetaType::construct)
M +6 -9 libs/fileactionmanager/databaseworkeriface.cpp
M +2 -2 libs/fileactionmanager/databaseworkeriface.h
M +4 -4 libs/fileactionmanager/fileactionmngr_p.cpp
M +9 -12 libs/fileactionmanager/fileworkeriface.cpp
M +4 -4 libs/fileactionmanager/fileworkeriface.h
M +1 -4 libs/threads/parallelworkers.cpp
http://commits.kde.org/digikam/26d165d8b2c52a001475516ab2e64dccd7d773ab
diff --git a/libs/fileactionmanager/databaseworkeriface.cpp \
b/libs/fileactionmanager/databaseworkeriface.cpp index 282776e..c9b022a 100644
--- a/libs/fileactionmanager/databaseworkeriface.cpp
+++ b/libs/fileactionmanager/databaseworkeriface.cpp
@@ -99,7 +99,7 @@ void \
FileActionMngrDatabaseWorker::changeTags(FileActionImageInfoList infos,
qCDebug(DIGIKAM_GENERAL_LOG) << "Scheduled to write";
for (ImageInfoTaskSplitter splitter(forWritingTaskList); splitter.hasNext(); \
)
- emit writeMetadataToFiles(new FileActionImageInfoList(splitter.next()));
+ emit writeMetadataToFiles(FileActionImageInfoList(splitter.next()));
}
infos.dbFinished();
@@ -144,7 +144,7 @@ void \
FileActionMngrDatabaseWorker::assignPickLabel(FileActionImageInfoList \
infos
forWritingTaskList.schedulingForWrite(i18n("Writing metadata to files"), \
d->fileProgressCreator());
for (ImageInfoTaskSplitter splitter(forWritingTaskList); splitter.hasNext(); \
)
- emit writeMetadataToFiles(new FileActionImageInfoList(splitter.next()));
+ emit writeMetadataToFiles(FileActionImageInfoList(splitter.next()));
}
infos.dbFinished();
@@ -189,7 +189,7 @@ void \
FileActionMngrDatabaseWorker::assignColorLabel(FileActionImageInfoList \
info
forWritingTaskList.schedulingForWrite(i18n("Writing metadata to files"), \
d->fileProgressCreator());
for (ImageInfoTaskSplitter splitter(forWritingTaskList); splitter.hasNext(); \
)
- emit writeMetadataToFiles(new FileActionImageInfoList(splitter.next()));
+ emit writeMetadataToFiles(FileActionImageInfoList(splitter.next()));
}
infos.dbFinished();
@@ -235,7 +235,7 @@ void \
FileActionMngrDatabaseWorker::assignRating(FileActionImageInfoList \
infos, i
forWritingTaskList.schedulingForWrite(i18n("Writing metadata to files"), \
d->fileProgressCreator());
for (ImageInfoTaskSplitter splitter(forWritingTaskList); splitter.hasNext(); \
)
- emit writeMetadataToFiles(new FileActionImageInfoList(splitter.next()));
+ emit writeMetadataToFiles(FileActionImageInfoList(splitter.next()));
}
infos.dbFinished();
@@ -298,14 +298,13 @@ void \
FileActionMngrDatabaseWorker::setExifOrientation(FileActionImageInfoList \
in
infos.schedulingForWrite(infos.count(), i18n("Revising Exif Orientation tags"), \
d->fileProgressCreator());
for (ImageInfoTaskSplitter splitter(infos); splitter.hasNext(); )
- emit writeOrientationToFiles(new FileActionImageInfoList(splitter.next()), \
orientation); + emit \
writeOrientationToFiles(FileActionImageInfoList(splitter.next()), orientation);
infos.dbFinished();
}
void FileActionMngrDatabaseWorker::applyMetadata(FileActionImageInfoList infos, \
DisjointMetadata *hub) {
- qCDebug(DIGIKAM_GENERAL_LOG) << "Infos size" << infos.size();
//ScanController::instance()->suspendCollectionScan();
{
DatabaseOperationGroup group;
@@ -333,9 +332,7 @@ void \
FileActionMngrDatabaseWorker::applyMetadata(FileActionImageInfoList infos,
for (ImageInfoTaskSplitter splitter(infos); splitter.hasNext(); )
{
- FileActionImageInfoList* rez = new \
FileActionImageInfoList(splitter.next());
-
- emit writeMetadataToFiles(rez);
+ emit writeMetadataToFiles(FileActionImageInfoList(splitter.next()));
}
}
diff --git a/libs/fileactionmanager/databaseworkeriface.h \
b/libs/fileactionmanager/databaseworkeriface.h index 0e8c34d..0905f1b 100644
--- a/libs/fileactionmanager/databaseworkeriface.h
+++ b/libs/fileactionmanager/databaseworkeriface.h
@@ -58,8 +58,8 @@ public Q_SLOTS:
Q_SIGNALS:
- void writeMetadataToFiles(FileActionImageInfoList* infos);
- void writeOrientationToFiles(FileActionImageInfoList* infos, int orientation);
+ void writeMetadataToFiles(FileActionImageInfoList infos);
+ void writeOrientationToFiles(FileActionImageInfoList infos, int orientation);
void writeMetadata(FileActionImageInfoList infos);
};
diff --git a/libs/fileactionmanager/fileactionmngr_p.cpp \
b/libs/fileactionmanager/fileactionmngr_p.cpp index 8b9623b..9e48bca 100644
--- a/libs/fileactionmanager/fileactionmngr_p.cpp
+++ b/libs/fileactionmanager/fileactionmngr_p.cpp
@@ -113,11 +113,11 @@ void FileActionMngr::Private::connectToDatabaseWorker()
void FileActionMngr::Private::connectDatabaseToFileWorker()
{
- connect(dbWorker, SIGNAL(writeMetadataToFiles(FileActionImageInfoList*)),
- fileWorker, SLOT(writeMetadataToFiles(FileActionImageInfoList*)), \
Qt::DirectConnection); + connect(dbWorker, \
SIGNAL(writeMetadataToFiles(FileActionImageInfoList)), + fileWorker, \
SLOT(writeMetadataToFiles(FileActionImageInfoList)), Qt::DirectConnection);
- connect(dbWorker, SIGNAL(writeOrientationToFiles(FileActionImageInfoList*,int)),
- fileWorker, SLOT(writeOrientationToFiles(FileActionImageInfoList*,int)), \
Qt::DirectConnection); + connect(dbWorker, \
SIGNAL(writeOrientationToFiles(FileActionImageInfoList,int)), + \
fileWorker, SLOT(writeOrientationToFiles(FileActionImageInfoList,int)), \
Qt::DirectConnection);
}
diff --git a/libs/fileactionmanager/fileworkeriface.cpp \
b/libs/fileactionmanager/fileworkeriface.cpp index 0d7d7e8..f1c6ef6 100644
--- a/libs/fileactionmanager/fileworkeriface.cpp
+++ b/libs/fileactionmanager/fileworkeriface.cpp
@@ -42,11 +42,11 @@
namespace Digikam
{
-void FileActionMngrFileWorker::writeOrientationToFiles(FileActionImageInfoList* \
infos, int orientation) +void \
FileActionMngrFileWorker::writeOrientationToFiles(FileActionImageInfoList infos, int \
orientation) {
QStringList failedItems;
- foreach(const ImageInfo& info, *infos)
+ foreach(const ImageInfo& info, infos)
{
if (state() == WorkerObject::Deactivating)
{
@@ -69,7 +69,7 @@ void \
FileActionMngrFileWorker::writeOrientationToFiles(FileActionImageInfoList* \
ImageAttributesWatch::instance()->fileMetadataChanged(url); }
- infos->writtenToOne();
+ infos.writtenToOne();
}
if (!failedItems.isEmpty())
@@ -77,16 +77,16 @@ void \
FileActionMngrFileWorker::writeOrientationToFiles(FileActionImageInfoList*
emit imageChangeFailed(i18n("Failed to revise Exif orientation these \
files:"), failedItems); }
- infos->finishedWriting();
+ infos.finishedWriting();
}
-void FileActionMngrFileWorker::writeMetadataToFiles(FileActionImageInfoList *infos)
+void FileActionMngrFileWorker::writeMetadataToFiles(FileActionImageInfoList infos)
{
- d->startingToWrite(*infos);
+ d->startingToWrite(infos);
ScanController::instance()->suspendCollectionScan();
- foreach(const ImageInfo& info, *infos)
+ foreach(const ImageInfo& info, infos)
{
MetadataHub hub;
@@ -102,19 +102,16 @@ void \
FileActionMngrFileWorker::writeMetadataToFiles(FileActionImageInfoList *inf \
writeScope.changed(hub.write(filePath, MetadataHub::FullWrite)); // hub emits \
fileMetadataChanged
- infos->writtenToOne();
+ infos.writtenToOne();
}
ScanController::instance()->resumeCollectionScan();
- infos->finishedWriting();
-
- delete infos;
+ infos.finishedWriting();
}
void FileActionMngrFileWorker::writeMetadata(FileActionImageInfoList infos, \
MetadataHub* hub) {
- qCDebug(DIGIKAM_GENERAL_LOG) << "post signal infos size " << infos.size();
d->startingToWrite(infos);
ScanController::instance()->suspendCollectionScan();
diff --git a/libs/fileactionmanager/fileworkeriface.h \
b/libs/fileactionmanager/fileworkeriface.h index f0768fb..6af6f64 100644
--- a/libs/fileactionmanager/fileworkeriface.h
+++ b/libs/fileactionmanager/fileworkeriface.h
@@ -42,8 +42,8 @@ class FileWorkerInterface : public WorkerObject
public Q_SLOTS:
- virtual void writeOrientationToFiles(FileActionImageInfoList*, int){};
- virtual void writeMetadataToFiles(FileActionImageInfoList*) {};
+ virtual void writeOrientationToFiles(FileActionImageInfoList, int){};
+ virtual void writeMetadataToFiles(FileActionImageInfoList) {};
virtual void writeMetadata(FileActionImageInfoList, MetadataHub*) {};
virtual void transform(FileActionImageInfoList, int) {};
@@ -67,8 +67,8 @@ public:
public:
- void writeOrientationToFiles(FileActionImageInfoList *infos, int orientation);
- void writeMetadataToFiles(FileActionImageInfoList* infos);
+ void writeOrientationToFiles(FileActionImageInfoList infos, int orientation);
+ void writeMetadataToFiles(FileActionImageInfoList infos);
void writeMetadata(FileActionImageInfoList infos, MetadataHub* hub);
void transform(FileActionImageInfoList infos, int orientation);
void ajustFaceRectangles(const ImageInfo &info, int action);
diff --git a/libs/threads/parallelworkers.cpp b/libs/threads/parallelworkers.cpp
index 4a04771..a2e0a23 100644
--- a/libs/threads/parallelworkers.cpp
+++ b/libs/threads/parallelworkers.cpp
@@ -175,7 +175,6 @@ int \
ParallelWorkers::replacementStaticQtMetacall(QMetaObject::Call _c, int _id,
for (int i = 0; i < types.size(); i++)
{
- qCWarning(DIGIKAM_GENERAL_LOG) << "Datatype" << types[i] << ".";
int typeId = QMetaType::type(types[i].constData());
if (!typeId && _a[i+1])
@@ -185,10 +184,8 @@ int \
ParallelWorkers::replacementStaticQtMetacall(QMetaObject::Call _c, int _id, }
// we use QMetaType to copy the data. _a[0] is reserved for a return \
parameter.
- void* const data = QMetaType(typeId).construct(_a[i+1]);
+ void* const data = QMetaType::create(typeId, _a[i+1]);
args[i] = QGenericArgument(types[i].constData(), data);
- qCDebug(DIGIKAM_GENERAL_LOG) << "Data:" << \
QLatin1String(types[i].constData());
-
}
// Find the object to be invoked
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic