[Pkg-owncloud-commits] [owncloud-client] 38/120: Activity: Skip PropagateDirectory jobs #3580

Sandro Knauß hefee-guest at moszumanska.debian.org
Mon Aug 24 00:02:41 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit fe42c1a818c3b1ccadb2e9557971b62a350573b4
Author: Christian Kamm <mail at ckamm.de>
Date:   Tue Aug 11 13:31:19 2015 +0200

    Activity: Skip PropagateDirectory jobs #3580
    
    Previously, PropagateDirectory jobs didn't emit the completed() signal.
    Now that they do, we need to make sure to not add extra lines to the
    protocol widget for them.
    
    To accomplish that, the jobCompleted() signal now also contains the job
    that completed the item.
---
 src/gui/folder.cpp                 |  7 ++++---
 src/gui/folder.h                   |  2 +-
 src/gui/protocolwidget.cpp         | 19 +++++++++++++------
 src/gui/protocolwidget.h           |  1 +
 src/gui/socketapi.cpp              |  2 +-
 src/libsync/owncloudpropagator.cpp | 13 +++++++------
 src/libsync/owncloudpropagator.h   |  7 ++++---
 src/libsync/progressdispatcher.h   |  6 +++++-
 src/libsync/propagateupload.cpp    |  3 ++-
 src/libsync/syncengine.cpp         |  8 ++++----
 src/libsync/syncengine.h           |  5 +++--
 11 files changed, 45 insertions(+), 28 deletions(-)

diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp
index 9e02e98..6fcc7d2 100644
--- a/src/gui/folder.cpp
+++ b/src/gui/folder.cpp
@@ -861,7 +861,8 @@ void Folder::startSync(const QStringList &pathList)
                     SLOT(slotAboutToRemoveAllFiles(SyncFileItem::Direction,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(jobCompleted(const SyncFileItem &)), this, SLOT(slotJobCompleted(const SyncFileItem &)));
+    connect(_engine.data(), SIGNAL(jobCompleted(const SyncFileItem &, const PropagatorJob &)),
+            this, SLOT(slotJobCompleted(const SyncFileItem &, const PropagatorJob &)));
     connect(_engine.data(), SIGNAL(syncItemDiscovered(const SyncFileItem &)), this, SLOT(slotSyncItemDiscovered(const SyncFileItem &)));
     connect(_engine.data(), SIGNAL(newBigFolder(QString)), this, SLOT(slotNewBigFolderDiscovered(QString)));
 
@@ -1047,7 +1048,7 @@ void Folder::slotTransmissionProgress(const ProgressInfo &pi)
 }
 
 // a job is completed: count the errors and forward to the ProgressDispatcher
-void Folder::slotJobCompleted(const SyncFileItem &item)
+void Folder::slotJobCompleted(const SyncFileItem &item, const PropagatorJob& job)
 {
     if (item.hasErrorStatus()) {
         _stateLastSyncItemsWithError.insert(item._file);
@@ -1057,7 +1058,7 @@ void Folder::slotJobCompleted(const SyncFileItem &item)
         // Count all error conditions.
         _syncResult.setWarnCount(_syncResult.warnCount()+1);
     }
-    emit ProgressDispatcher::instance()->jobCompleted(alias(), item);
+    emit ProgressDispatcher::instance()->jobCompleted(alias(), item, job);
 }
 
 void Folder::slotSyncItemDiscovered(const SyncFileItem & item)
diff --git a/src/gui/folder.h b/src/gui/folder.h
index 49ae3b5..625d4c5 100644
--- a/src/gui/folder.h
+++ b/src/gui/folder.h
@@ -242,7 +242,7 @@ private slots:
 
     void slotFolderDiscovered(bool local, QString folderName);
     void slotTransmissionProgress(const ProgressInfo& pi);
-    void slotJobCompleted(const SyncFileItem&);
+    void slotJobCompleted(const SyncFileItem&, const PropagatorJob&);
     void slotSyncItemDiscovered(const SyncFileItem & item);
 
     void slotRunEtagJob();
diff --git a/src/gui/protocolwidget.cpp b/src/gui/protocolwidget.cpp
index 7a25826..35895c8 100644
--- a/src/gui/protocolwidget.cpp
+++ b/src/gui/protocolwidget.cpp
@@ -26,6 +26,7 @@
 #include "syncfileitem.h"
 #include "folder.h"
 #include "openfilemanager.h"
+#include "owncloudpropagator.h"
 
 #include "ui_protocolwidget.h"
 
@@ -42,6 +43,8 @@ ProtocolWidget::ProtocolWidget(QWidget *parent) :
 
     connect(ProgressDispatcher::instance(), SIGNAL(progressInfo(QString,ProgressInfo)),
             this, SLOT(slotProgressInfo(QString,ProgressInfo)));
+    connect(ProgressDispatcher::instance(), SIGNAL(jobCompleted(QString,SyncFileItem,PropagatorJob)),
+            this, SLOT(slotJobComplete(QString,SyncFileItem,PropagatorJob)));
 
     connect(_ui->_treeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), SLOT(slotOpenFile(QTreeWidgetItem*,int)));
 
@@ -276,17 +279,21 @@ void ProtocolWidget::slotProgressInfo( const QString& folder, const ProgressInfo
         //Sync completed
         computeResyncButtonEnabled();
     }
-    SyncFileItem last = progress._lastCompletedItem;
-    if (last.isEmpty()) return;
+}
 
-    QTreeWidgetItem *item = createCompletedTreewidgetItem(folder, last);
-    if(item) {
-        _ui->_treeWidget->insertTopLevelItem(0, item);
+void ProtocolWidget::slotJobComplete(const QString &folder, const SyncFileItem &item, const PropagatorJob &job)
+{
+    if (qobject_cast<const PropagateDirectory*>(&job)) {
+        return;
+    }
+
+    QTreeWidgetItem *line = createCompletedTreewidgetItem(folder, item);
+    if(line) {
+        _ui->_treeWidget->insertTopLevelItem(0, line);
         if (!_copyBtn->isEnabled()) {
             _copyBtn->setEnabled(true);
         }
     }
 }
 
-
 }
diff --git a/src/gui/protocolwidget.h b/src/gui/protocolwidget.h
index a74ab54..d6b2c2a 100644
--- a/src/gui/protocolwidget.h
+++ b/src/gui/protocolwidget.h
@@ -47,6 +47,7 @@ public:
 
 public slots:
     void slotProgressInfo( const QString& folder, const ProgressInfo& progress );
+    void slotJobComplete( const QString& folder, const SyncFileItem& item, const PropagatorJob& job);
     void slotOpenFile( QTreeWidgetItem* item, int );
 
 protected slots:
diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp
index a9000f8..a55d576 100644
--- a/src/gui/socketapi.cpp
+++ b/src/gui/socketapi.cpp
@@ -127,7 +127,7 @@ SocketApi::SocketApi(QObject* parent)
 
     // folder watcher
     connect(FolderMan::instance(), SIGNAL(folderSyncStateChange(Folder*)), this, SLOT(slotUpdateFolderView(Folder*)));
-    connect(ProgressDispatcher::instance(), SIGNAL(jobCompleted(QString, const SyncFileItem &)),
+    connect(ProgressDispatcher::instance(), SIGNAL(jobCompleted(QString, const SyncFileItem &, const PropagatorJob &)),
             SLOT(slotJobCompleted(QString, const SyncFileItem &)));
     connect(ProgressDispatcher::instance(), SIGNAL(syncItemDiscovered(QString, const SyncFileItem &)),
             this, SLOT(slotSyncItemDiscovered(QString, const SyncFileItem &)));
diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp
index 9e60a9c..3391b96 100644
--- a/src/libsync/owncloudpropagator.cpp
+++ b/src/libsync/owncloudpropagator.cpp
@@ -135,7 +135,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
 
     _item->_status = status;
 
-    emit completed(*_item);
+    emit completed(*_item, *this);
     emit finished(status);
 }
 
@@ -187,8 +187,8 @@ bool PropagateItemJob::checkForProblemsWithShared(int httpStatusCode, const QStr
         if( newJob )  {
             newJob->setRestoreJobMsg(msg);
             _restoreJob.reset(newJob);
-            connect(_restoreJob.data(), SIGNAL(completed(const SyncFileItemPtr &)),
-                    this, SLOT(slotRestoreJobCompleted(const SyncFileItemPtr &)));
+            connect(_restoreJob.data(), SIGNAL(completed(const SyncFileItemPtr &, const PropagatorJob &)),
+                    this, SLOT(slotRestoreJobCompleted(const SyncFileItemPtr &, const PropagatorJob &)));
             QMetaObject::invokeMethod(newJob, "start");
         }
         return true;
@@ -354,7 +354,8 @@ void OwncloudPropagator::start(const SyncFileItemVector& items)
         _rootJob->append(it);
     }
 
-    connect(_rootJob.data(), SIGNAL(completed(const SyncFileItem &)), this, SIGNAL(completed(const SyncFileItem &)));
+    connect(_rootJob.data(), SIGNAL(completed(const SyncFileItem &, const PropagatorJob &)),
+            this, SIGNAL(completed(const SyncFileItem &, const PropagatorJob &)));
     connect(_rootJob.data(), SIGNAL(progress(const SyncFileItem &,quint64)), this, SIGNAL(progress(const SyncFileItem &,quint64)));
     connect(_rootJob.data(), SIGNAL(finished(SyncFileItem::Status)), this, SLOT(emitFinished()));
     connect(_rootJob.data(), SIGNAL(ready()), this, SLOT(scheduleNextJob()), Qt::QueuedConnection);
@@ -611,7 +612,7 @@ void PropagateDirectory::slotSubJobFinished(SyncFileItem::Status status)
             (sender() == _firstJob.data() && status != SyncFileItem::Success && status != SyncFileItem::Restoration)) {
         abort();
         _state = Finished;
-        emit completed(*_item);
+        emit completed(*_item, *this);
         emit finished(status);
         return;
     } else if (status == SyncFileItem::NormalError || status == SyncFileItem::SoftError) {
@@ -655,7 +656,7 @@ void PropagateDirectory::finalize()
         }
     }
     _state = Finished;
-    emit completed(*_item);
+    emit completed(*_item, *this);
     emit finished(_hasError == SyncFileItem::NoStatus ? SyncFileItem::Success : _hasError);
 }
 
diff --git a/src/libsync/owncloudpropagator.h b/src/libsync/owncloudpropagator.h
index 441462c..ae44bb9 100644
--- a/src/libsync/owncloudpropagator.h
+++ b/src/libsync/owncloudpropagator.h
@@ -94,7 +94,7 @@ signals:
     /**
      * Emitted when one item has been completed within a job.
      */
-    void completed(const SyncFileItem &);
+    void completed(const SyncFileItem &, const PropagatorJob &);
 
     /**
      * Emitted when all the sub-jobs have been finished and
@@ -207,7 +207,8 @@ 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(completed(const SyncFileItem &)), this, SIGNAL(completed(const SyncFileItem &)));
+            connect(next, SIGNAL(completed(const SyncFileItem &, const PropagatorJob &)),
+                    this, SIGNAL(completed(const SyncFileItem &, const PropagatorJob &)));
             connect(next, SIGNAL(progress(const SyncFileItem &,quint64)), this, SIGNAL(progress(const SyncFileItem &,quint64)));
             connect(next, SIGNAL(ready()), this, SIGNAL(ready()));
             _runningNow++;
@@ -333,7 +334,7 @@ private slots:
     void scheduleNextJob();
 
 signals:
-    void completed(const SyncFileItem &);
+    void completed(const SyncFileItem &, const PropagatorJob &);
     void progress(const SyncFileItem&, quint64 bytes);
     void finished();
     /**
diff --git a/src/libsync/progressdispatcher.h b/src/libsync/progressdispatcher.h
index e9b85c3..9f5d658 100644
--- a/src/libsync/progressdispatcher.h
+++ b/src/libsync/progressdispatcher.h
@@ -27,6 +27,8 @@
 
 namespace OCC {
 
+class PropagatorJob;
+
 /**
  * @brief The ProgressInfo class
  * @ingroup libsync
@@ -239,7 +241,9 @@ signals:
     /**
      * @brief: the item's job is completed
      */
-    void jobCompleted(const QString &folder, const SyncFileItem & item);
+    void jobCompleted(const QString &folder,
+                      const SyncFileItem & item,
+                      const PropagatorJob & job);
 
     void syncItemDiscovered(const QString &folder, const SyncFileItem & item);
 
diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp
index cada1c3..44d46ef 100644
--- a/src/libsync/propagateupload.cpp
+++ b/src/libsync/propagateupload.cpp
@@ -682,7 +682,8 @@ void PropagateUploadFileQNAM::slotPutFinished()
         qWarning() << "Server do not support X-OC-MTime" << job->reply()->rawHeader("X-OC-MTime");
 #ifdef USE_NEON
         PropagatorJob *newJob = new UpdateMTimeAndETagJob(_propagator, _item);
-        QObject::connect(newJob, SIGNAL(completed(SyncFileItem)), this, SLOT(finalize(SyncFileItem)));
+        QObject::connect(newJob, SIGNAL(completed(SyncFileItem, PropagatorJob)),
+                         this, SLOT(finalize(SyncFileItem)));
         QMetaObject::invokeMethod(newJob, "start");
         return;
 #else
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 4ed8588..1c9616b 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -802,8 +802,8 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
 
     _propagator = QSharedPointer<OwncloudPropagator>(
         new OwncloudPropagator (_account, session, _localPath, _remoteUrl, _remotePath, _journal, &_thread));
-    connect(_propagator.data(), SIGNAL(completed(const SyncFileItem &)),
-            this, SLOT(slotJobCompleted(const SyncFileItem &)));
+    connect(_propagator.data(), SIGNAL(completed(const SyncFileItem &, const PropagatorJob &)),
+            this, SLOT(slotJobCompleted(const SyncFileItem &, const PropagatorJob &)));
     connect(_propagator.data(), SIGNAL(progress(const SyncFileItem &,quint64)),
             this, SLOT(slotProgress(const SyncFileItem &,quint64)));
     connect(_propagator.data(), SIGNAL(adjustTotalTransmissionSize(qint64)), this, SLOT(slotAdjustTotalTransmissionSize(qint64)));
@@ -858,7 +858,7 @@ void SyncEngine::setNetworkLimits(int upload, int download)
     }
 }
 
-void SyncEngine::slotJobCompleted(const SyncFileItem &item)
+void SyncEngine::slotJobCompleted(const SyncFileItem &item, const PropagatorJob &job)
 {
     const char * instruction_str = csync_instruction_str(item._instruction);
     qDebug() << Q_FUNC_INFO << item._file << instruction_str << item._status << item._errorString;
@@ -870,7 +870,7 @@ void SyncEngine::slotJobCompleted(const SyncFileItem &item)
     }
 
     emit transmissionProgress(*_progressInfo);
-    emit jobCompleted(item);
+    emit jobCompleted(item, job);
 }
 
 void SyncEngine::slotFinished()
diff --git a/src/libsync/syncengine.h b/src/libsync/syncengine.h
index 8668eef..68daa3e 100644
--- a/src/libsync/syncengine.h
+++ b/src/libsync/syncengine.h
@@ -45,6 +45,7 @@ namespace OCC {
 class SyncJournalFileRecord;
 class SyncJournalDb;
 class OwncloudPropagator;
+class PropagatorJob;
 
 /**
  * @brief The SyncEngine class
@@ -101,7 +102,7 @@ signals:
     void aboutToPropagate(SyncFileItemVector&);
 
     // after each job (successful or not)
-    void jobCompleted(const SyncFileItem&);
+    void jobCompleted(const SyncFileItem&, const PropagatorJob&);
 
     // after sync is done
     void treeWalkResult(const SyncFileItemVector&);
@@ -121,7 +122,7 @@ signals:
 
 private slots:
     void slotRootEtagReceived(QString);
-    void slotJobCompleted(const SyncFileItem& item);
+    void slotJobCompleted(const SyncFileItem& item, const PropagatorJob & job);
     void slotFinished();
     void slotProgress(const SyncFileItem& item, quint64 curent);
     void slotAdjustTotalTransmissionSize(qint64 change);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list