Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-03-01 16:06:22 +0300
committerHannah von Reth <vonreth@kde.org>2022-03-10 13:51:30 +0300
commitd47a1483c01fc4ad4594ff32bbe517e03d81d26e (patch)
tree7885ca4e0794718a7d3753b23ba59d431b0ab4de /src/gui/folderman.cpp
parent145b7404b4dced52d7c4b6ebc1e424b54a142c6c (diff)
Don't load folder if we encounter a db error
Fixes: #9147
Diffstat (limited to 'src/gui/folderman.cpp')
-rw-r--r--src/gui/folderman.cpp56
1 files changed, 30 insertions, 26 deletions
diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp
index 2d9ae5731..7597d2637 100644
--- a/src/gui/folderman.cpp
+++ b/src/gui/folderman.cpp
@@ -193,24 +193,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()
@@ -1123,18 +1125,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;
}