diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-03-15 14:12:03 +0300 |
---|---|---|
committer | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-03-15 14:12:03 +0300 |
commit | fd95b7a4de7fd3e0d091d1a72bbfe1eee255205a (patch) | |
tree | f47d3616cfec439db5ee19d7ad8336a24c19f713 /src/gui/folderman.cpp | |
parent | 0dd2065bd8fff67f30521f67c37af1fc2f1fb861 (diff) | |
parent | b35eec30325eb9933339e02e66640ca2082ade35 (diff) |
Merge remote-tracking branch 'origin/2.10'
Diffstat (limited to 'src/gui/folderman.cpp')
-rw-r--r-- | src/gui/folderman.cpp | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index d1af68ba8..e68dc1cbe 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -194,24 +194,26 @@ void FolderMan::unloadFolder(Folder *f) { Q_ASSERT(f); + _folderMap.remove(f->alias()); _socketApi->slotUnregisterPath(f->alias()); - _folderMap.remove(f->alias()); - disconnect(f, &Folder::syncStarted, - this, &FolderMan::slotFolderSyncStarted); - disconnect(f, &Folder::syncFinished, - this, &FolderMan::slotFolderSyncFinished); - disconnect(f, &Folder::syncStateChange, - this, &FolderMan::slotForwardFolderSyncStateChange); - disconnect(f, &Folder::syncPausedChanged, - this, &FolderMan::slotFolderSyncPaused); - disconnect(&f->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::fileStatusChanged, - _socketApi.data(), &SocketApi::broadcastStatusPushMessage); - disconnect(f, &Folder::watchedFileChangedExternally, - &f->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::slotPathTouched); + if (!f->hasSetupError()) { + disconnect(f, &Folder::syncStarted, + this, &FolderMan::slotFolderSyncStarted); + disconnect(f, &Folder::syncFinished, + this, &FolderMan::slotFolderSyncFinished); + disconnect(f, &Folder::syncStateChange, + this, &FolderMan::slotForwardFolderSyncStateChange); + disconnect(f, &Folder::syncPausedChanged, + this, &FolderMan::slotFolderSyncPaused); + disconnect(&f->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::fileStatusChanged, + _socketApi.data(), &SocketApi::broadcastStatusPushMessage); + disconnect(f, &Folder::watchedFileChangedExternally, + &f->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::slotPathTouched); - f->syncEngine().disconnect(f); + f->syncEngine().disconnect(f); + } } void FolderMan::unloadAndDeleteAllFolders() @@ -1125,18 +1127,20 @@ Folder *FolderMan::addFolderInternal( } // See matching disconnects in unloadFolder(). - connect(folder, &Folder::syncStarted, this, &FolderMan::slotFolderSyncStarted); - connect(folder, &Folder::syncFinished, this, &FolderMan::slotFolderSyncFinished); - connect(folder, &Folder::syncStateChange, this, &FolderMan::slotForwardFolderSyncStateChange); - connect(folder, &Folder::syncPausedChanged, this, &FolderMan::slotFolderSyncPaused); - connect(folder, &Folder::canSyncChanged, this, &FolderMan::slotFolderCanSyncChanged); - connect(&folder->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::fileStatusChanged, - _socketApi.data(), &SocketApi::broadcastStatusPushMessage); - connect(folder, &Folder::watchedFileChangedExternally, - &folder->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::slotPathTouched); - - folder->registerFolderWatcher(); - registerFolderWithSocketApi(folder); + if (!folder->hasSetupError()) { + connect(folder, &Folder::syncStarted, this, &FolderMan::slotFolderSyncStarted); + connect(folder, &Folder::syncFinished, this, &FolderMan::slotFolderSyncFinished); + connect(folder, &Folder::syncStateChange, this, &FolderMan::slotForwardFolderSyncStateChange); + connect(folder, &Folder::syncPausedChanged, this, &FolderMan::slotFolderSyncPaused); + connect(folder, &Folder::canSyncChanged, this, &FolderMan::slotFolderCanSyncChanged); + connect(&folder->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::fileStatusChanged, + _socketApi.data(), &SocketApi::broadcastStatusPushMessage); + connect(folder, &Folder::watchedFileChangedExternally, + &folder->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::slotPathTouched); + + folder->registerFolderWatcher(); + registerFolderWithSocketApi(folder); + } return folder; } |