Don't pass the PropagatorJob in itemCompleted
authorJocelyn Turcotte <jturcotte@woboq.com>
Wed, 25 Jan 2017 13:09:44 +0000 (14:09 +0100)
committerJocelyn Turcotte <jturcotte@woboq.com>
Wed, 25 Jan 2017 22:26:23 +0000 (23:26 +0100)
This was to catch duplicate emissions for PropagateDirectory but we
don't emit this signal anymore from there.
This fixes a warning about PropagatorJob not being a registered metatype.

This reverts commit fe42c1a818c3b1ccadb2e9557971b62a350573b4.

12 files changed:
src/gui/folder.cpp
src/gui/folder.h
src/gui/protocolwidget.cpp
src/gui/protocolwidget.h
src/libsync/owncloudpropagator.cpp
src/libsync/owncloudpropagator.h
src/libsync/progressdispatcher.h
src/libsync/syncengine.cpp
src/libsync/syncengine.h
src/libsync/syncfilestatustracker.cpp
test/syncenginetestutils.h
test/testsyncengine.cpp

index 570bac6e625dfd3d2f6ca52c916efacbc1ef48f7..2823d04b7f85fd4f65dbadfbcad84cbe2f2a91ac 100644 (file)
@@ -102,8 +102,8 @@ Folder::Folder(const FolderDefinition& definition,
             SLOT(slotAboutToRestoreBackup(bool*)));
     connect(_engine.data(), SIGNAL(folderDiscovered(bool,QString)), this, SLOT(slotFolderDiscovered(bool,QString)));
     connect(_engine.data(), SIGNAL(transmissionProgress(ProgressInfo)), this, SLOT(slotTransmissionProgress(ProgressInfo)));
-    connect(_engine.data(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)),
-            this, SLOT(slotItemCompleted(const SyncFileItem &, const PropagatorJob &)));
+    connect(_engine.data(), SIGNAL(itemCompleted(const SyncFileItem &)),
+            this, SLOT(slotItemCompleted(const SyncFileItem &)));
     connect(_engine.data(), SIGNAL(newBigFolder(QString)), this, SLOT(slotNewBigFolderDiscovered(QString)));
     connect(_engine.data(), SIGNAL(seenLockedFile(QString)), FolderMan::instance(), SLOT(slotSyncOnceFileUnlocks(QString)));
     connect(_engine.data(), SIGNAL(aboutToPropagate(SyncFileItemVector&)),
@@ -917,14 +917,14 @@ void Folder::slotTransmissionProgress(const ProgressInfo &pi)
 }
 
 // a item is completed: count the errors and forward to the ProgressDispatcher
-void Folder::slotItemCompleted(const SyncFileItem &item, const PropagatorJob& job)
+void Folder::slotItemCompleted(const SyncFileItem &item)
 {
     if (Progress::isWarningKind(item._status)) {
         // Count all error conditions.
         _syncResult.setWarnCount(_syncResult.warnCount()+1);
     }
     _fileLog->logItem(item);
-    emit ProgressDispatcher::instance()->itemCompleted(alias(), item, job);
+    emit ProgressDispatcher::instance()->itemCompleted(alias(), item);
 }
 
 void Folder::slotNewBigFolderDiscovered(const QString &newF)
index b44f5799b70bfbc7a173b3431365e7adcd07b9bb..e220337e8b81895c5fdea5d0ce37f8cd874926a6 100644 (file)
@@ -280,7 +280,7 @@ private slots:
 
     void slotFolderDiscovered(bool local, QString folderName);
     void slotTransmissionProgress(const ProgressInfo& pi);
-    void slotItemCompleted(const SyncFileItem&, const PropagatorJob&);
+    void slotItemCompleted(const SyncFileItem&);
 
     void slotRunEtagJob();
     void etagRetreived(const QString &);
index e97ba9e141b7152ea4b1586e8191e62db127e10b..6adf2fc54200e35db730e4a42ace57bedbd8c206 100644 (file)
@@ -27,7 +27,6 @@
 #include "syncfileitem.h"
 #include "folder.h"
 #include "openfilemanager.h"
-#include "owncloudpropagator.h"
 #include "activityitemdelegate.h"
 
 #include "ui_protocolwidget.h"
@@ -45,8 +44,8 @@ ProtocolWidget::ProtocolWidget(QWidget *parent) :
 
     connect(ProgressDispatcher::instance(), SIGNAL(progressInfo(QString,ProgressInfo)),
             this, SLOT(slotProgressInfo(QString,ProgressInfo)));
-    connect(ProgressDispatcher::instance(), SIGNAL(itemCompleted(QString,SyncFileItem,PropagatorJob)),
-            this, SLOT(slotItemCompleted(QString,SyncFileItem,PropagatorJob)));
+    connect(ProgressDispatcher::instance(), SIGNAL(itemCompleted(QString,SyncFileItem)),
+            this, SLOT(slotItemCompleted(QString,SyncFileItem)));
 
     connect(_ui->_treeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), SLOT(slotOpenFile(QTreeWidgetItem*,int)));
 
@@ -222,12 +221,8 @@ void ProtocolWidget::slotProgressInfo( const QString& folder, const ProgressInfo
     }
 }
 
-void ProtocolWidget::slotItemCompleted(const QString &folder, const SyncFileItem &item, const PropagatorJob &job)
+void ProtocolWidget::slotItemCompleted(const QString &folder, const SyncFileItem &item)
 {
-    if (qobject_cast<const PropagateDirectory*>(&job)) {
-        return;
-    }
-
     QTreeWidgetItem *line = createCompletedTreewidgetItem(folder, item);
     if(line) {
        if( item.hasErrorStatus() ) {
index a36d005f2aef9ee97f603443377774599ae26693..9faf0dd484744e972c30da4eb91c5806da846ce3 100644 (file)
@@ -52,7 +52,7 @@ public:
 
 public slots:
     void slotProgressInfo( const QString& folder, const ProgressInfo& progress );
-    void slotItemCompleted( const QString& folder, const SyncFileItem& item, const PropagatorJob& job);
+    void slotItemCompleted( const QString& folder, const SyncFileItem& item);
     void slotOpenFile( QTreeWidgetItem* item, int );
 
 protected:
index afe26c3d3149a3197bfce26be5494a57f9c742f7..6d87f53b77b252caa3de658bb8dd273cf649ff05 100644 (file)
@@ -172,7 +172,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
 
     _item->_status = status;
 
-    emit itemCompleted(*_item, *this);
+    emit itemCompleted(*_item);
     emit finished(status);
 }
 
@@ -221,7 +221,7 @@ bool PropagateItemJob::checkForProblemsWithShared(int httpStatusCode, const QStr
         if( newJob )  {
             newJob->setRestoreJobMsg(msg);
             _restoreJob.reset(newJob);
-            connect(_restoreJob.data(), SIGNAL(itemCompleted(const SyncFileItemPtr &, const PropagatorJob &)),
+            connect(_restoreJob.data(), SIGNAL(itemCompleted(const SyncFileItemPtr &)),
                     this, SLOT(slotRestoreJobCompleted(const SyncFileItemPtr &)));
             QMetaObject::invokeMethod(newJob, "start");
         }
@@ -403,8 +403,8 @@ void OwncloudPropagator::start(const SyncFileItemVector& items)
         _rootJob->append(it);
     }
 
-    connect(_rootJob.data(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)),
-            this, SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+    connect(_rootJob.data(), SIGNAL(itemCompleted(const SyncFileItem &)),
+            this, SIGNAL(itemCompleted(const SyncFileItem &)));
     connect(_rootJob.data(), SIGNAL(progress(const SyncFileItem &,quint64)), this, SIGNAL(progress(const SyncFileItem &,quint64)));
     connect(_rootJob.data(), SIGNAL(finished(SyncFileItem::Status)), this, SLOT(emitFinished(SyncFileItem::Status)));
     connect(_rootJob.data(), SIGNAL(ready()), this, SLOT(scheduleNextJob()), Qt::QueuedConnection);
index b7b57f4b636e9dc360aa0a770dfb3ce330112b53..70220d44c463945a1004d70d8c270ea6dbeac42b 100644 (file)
@@ -114,7 +114,7 @@ signals:
     /**
      * Emitted when one item has been completed within a job.
      */
-    void itemCompleted(const SyncFileItem &, const PropagatorJob &);
+    void itemCompleted(const SyncFileItem &);
 
     /**
      * Emitted when all the sub-jobs have been finished and
@@ -231,8 +231,7 @@ private slots:
     bool possiblyRunNextJob(PropagatorJob *next) {
         if (next->_state == NotYetStarted) {
             connect(next, SIGNAL(finished(SyncFileItem::Status)), this, SLOT(slotSubJobFinished(SyncFileItem::Status)), Qt::QueuedConnection);
-            connect(next, SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)),
-                    this, SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+            connect(next, SIGNAL(itemCompleted(const SyncFileItem &)), this, SIGNAL(itemCompleted(const SyncFileItem &)));
             connect(next, SIGNAL(progress(const SyncFileItem &,quint64)), this, SIGNAL(progress(const SyncFileItem &,quint64)));
             connect(next, SIGNAL(ready()), this, SIGNAL(ready()));
             _runningNow++;
@@ -356,7 +355,7 @@ private slots:
     void scheduleNextJob();
 
 signals:
-    void itemCompleted(const SyncFileItem &, const PropagatorJob &);
+    void itemCompleted(const SyncFileItem &);
     void progress(const SyncFileItem&, quint64 bytes);
     void finished(bool success);
 
index 538ce60c417bc621cecae73fa6173068be530a52..49e29d14c5c099234b870bfb3a7c38cd7bf9b128 100644 (file)
@@ -28,8 +28,6 @@
 
 namespace OCC {
 
-class PropagatorJob;
-
 /**
  * @brief The ProgressInfo class
  * @ingroup libsync
@@ -252,9 +250,7 @@ signals:
     /**
      * @brief: the item was completed by a job
      */
-    void itemCompleted(const QString &folder,
-                       const SyncFileItem & item,
-                       const PropagatorJob & job);
+    void itemCompleted(const QString &folder, const SyncFileItem & item);
 
 protected:
     void setProgressInfo(const QString& folder, const ProgressInfo& progress);
index 52cc9a5fff4860d0f8a0ca9a45260ba921fb8f09..0460a93018193f7521becfdfa830613a229e0dea 100644 (file)
@@ -1004,8 +1004,8 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
 
     _propagator = QSharedPointer<OwncloudPropagator>(
         new OwncloudPropagator (_account, _localPath, _remotePath, _journal));
-    connect(_propagator.data(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)),
-            this, SLOT(slotItemCompleted(const SyncFileItem &, const PropagatorJob &)));
+    connect(_propagator.data(), SIGNAL(itemCompleted(const SyncFileItem &)),
+            this, SLOT(slotItemCompleted(const SyncFileItem &)));
     connect(_propagator.data(), SIGNAL(progress(const SyncFileItem &,quint64)),
             this, SLOT(slotProgress(const SyncFileItem &,quint64)));
     connect(_propagator.data(), SIGNAL(finished(bool)), this, SLOT(slotFinished(bool)), Qt::QueuedConnection);
@@ -1061,7 +1061,7 @@ void SyncEngine::setNetworkLimits(int upload, int download)
     }
 }
 
-void SyncEngine::slotItemCompleted(const SyncFileItem &item, const PropagatorJob &job)
+void SyncEngine::slotItemCompleted(const SyncFileItem &item)
 {
     const char * instruction_str = csync_instruction_str(item._instruction);
     qDebug() << Q_FUNC_INFO << item._file << instruction_str << item._status << item._errorString;
@@ -1073,7 +1073,7 @@ void SyncEngine::slotItemCompleted(const SyncFileItem &item, const PropagatorJob
     }
 
     emit transmissionProgress(*_progressInfo);
-    emit itemCompleted(item, job);
+    emit itemCompleted(item);
 }
 
 void SyncEngine::slotFinished(bool success)
index d29c433b1606a3f2a8b5aa468c244546e84cab31..de4a03c3ca00a5e3426edbda35b1de2a2c911ecc 100644 (file)
@@ -47,7 +47,6 @@ namespace OCC {
 class SyncJournalFileRecord;
 class SyncJournalDb;
 class OwncloudPropagator;
-class PropagatorJob;
 
 enum AnotherSyncNeeded
 {
@@ -122,7 +121,7 @@ signals:
     void aboutToPropagate(SyncFileItemVector&);
 
     // after each item completed by a job (successful or not)
-    void itemCompleted(const SyncFileItem&, const PropagatorJob&);
+    void itemCompleted(const SyncFileItem&);
 
     // after sync is done
     void treeWalkResult(const SyncFileItemVector&);
@@ -156,7 +155,7 @@ signals:
 
 private slots:
     void slotRootEtagReceived(const QString &);
-    void slotItemCompleted(const SyncFileItem& item, const PropagatorJob & job);
+    void slotItemCompleted(const SyncFileItem& item);
     void slotFinished(bool success);
     void slotProgress(const SyncFileItem& item, quint64 curent);
     void slotDiscoveryJobFinished(int updateResult);
index 9796974864ff63d1323577f866d6136e3524fbbc..23f97fa16f5f3f56d982bbdcd70a724c95aa1e75 100644 (file)
@@ -77,7 +77,7 @@ SyncFileStatusTracker::SyncFileStatusTracker(SyncEngine *syncEngine)
 {
     connect(syncEngine, SIGNAL(aboutToPropagate(SyncFileItemVector&)),
             SLOT(slotAboutToPropagate(SyncFileItemVector&)));
-    connect(syncEngine, SIGNAL(itemCompleted(const SyncFileItem&, const PropagatorJob&)),
+    connect(syncEngine, SIGNAL(itemCompleted(const SyncFileItem&)),
             SLOT(slotItemCompleted(const SyncFileItem&)));
     connect(syncEngine, SIGNAL(finished(bool)), SLOT(slotSyncFinished()));
     connect(syncEngine, SIGNAL(started()), SLOT(slotSyncEngineRunningChanged()));
index 59d5e5b147daf2311741f0a06b8dbf7da19ec132..76b74c15e58e22d8463d5eb2dcb729e3ed80e824 100644 (file)
@@ -818,7 +818,7 @@ public:
     }
 
     void execUntilItemCompleted(const QString &relativePath) {
-        QSignalSpy spy(_syncEngine.get(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy spy(_syncEngine.get(), SIGNAL(itemCompleted(const SyncFileItem &)));
         QElapsedTimer t;
         t.start();
         while (t.elapsed() < 5000) {
index f54ff1110e1ad119a354aa72fdb400eaf2d8f94e..7e9f42f549b2b3813d2e9fecc20c5cef4a73af83 100644 (file)
@@ -38,7 +38,7 @@ class TestSyncEngine : public QObject
 private slots:
     void testFileDownload() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.remoteModifier().insert("A/a0");
         fakeFolder.syncOnce();
         QVERIFY(itemDidCompleteSuccessfully(completeSpy, "A/a0"));
@@ -47,7 +47,7 @@ private slots:
 
     void testFileUpload() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.localModifier().insert("A/a0");
         fakeFolder.syncOnce();
         QVERIFY(itemDidCompleteSuccessfully(completeSpy, "A/a0"));
@@ -56,7 +56,7 @@ private slots:
 
     void testDirDownload() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.remoteModifier().mkdir("Y");
         fakeFolder.remoteModifier().mkdir("Z");
         fakeFolder.remoteModifier().insert("Z/d0");
@@ -69,7 +69,7 @@ private slots:
 
     void testDirUpload() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.localModifier().mkdir("Y");
         fakeFolder.localModifier().mkdir("Z");
         fakeFolder.localModifier().insert("Z/d0");
@@ -82,7 +82,7 @@ private slots:
 
     void testLocalDelete() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.remoteModifier().remove("A/a1");
         fakeFolder.syncOnce();
         QVERIFY(itemDidCompleteSuccessfully(completeSpy, "A/a1"));
@@ -91,7 +91,7 @@ private slots:
 
     void testRemoteDelete() {
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         fakeFolder.localModifier().remove("A/a1");
         fakeFolder.syncOnce();
         QVERIFY(itemDidCompleteSuccessfully(completeSpy, "A/a1"));
@@ -107,7 +107,7 @@ private slots:
         // fakeFolder.syncOnce();
         fakeFolder.syncOnce();
 
-        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+        QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
         // Touch the file without changing the content, shouldn't upload
         fakeFolder.localModifier().setContents("a1.eml", 'A');
         // Change the content/size
@@ -204,7 +204,7 @@ private slots:
             QCOMPARE(fakeFolder.currentLocalState(), remoteState);
 
             expectedServerState = fakeFolder.currentRemoteState();
-            QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &, const PropagatorJob &)));
+            QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItem &)));
             fakeFolder.syncOnce(); // This sync should do nothing
             QCOMPARE(completeSpy.count(), 0);