diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index 282fb299da1ea..0ba7b7e8fc189 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -126,6 +126,8 @@ void FolderMan::unloadFolder(Folder *f) this, &FolderMan::slotForwardFolderSyncStateChange); disconnect(f, &Folder::syncPausedChanged, this, &FolderMan::slotFolderSyncPaused); + disconnect(f, &Folder::canSyncChanged, + this, &FolderMan::slotFolderCanSyncChanged); disconnect(&f->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::fileStatusChanged, _socketApi.data(), &SocketApi::broadcastStatusPushMessage); disconnect(f, &Folder::watchedFileChangedExternally, @@ -659,12 +661,12 @@ void FolderMan::slotFolderSyncPaused(Folder *f, bool paused) void FolderMan::slotFolderCanSyncChanged() { - auto *f = qobject_cast(sender()); - ASSERT(f); - if (f->canSync()) { - _socketApi->slotRegisterPath(f->alias()); + auto folder = qobject_cast(sender()); + ASSERT(folder); + if (folder->canSync()) { + _socketApi->slotRegisterPath(folder->alias()); } else { - _socketApi->slotUnregisterPath(f->alias()); + _socketApi->slotUnregisterPath(folder->alias()); } } diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index eb2f4c4d04ceb..3682a19b9233a 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -459,12 +459,16 @@ void SocketApi::slotRegisterPath(const QString &alias) void SocketApi::slotUnregisterPath(const QString &alias) { - if (!_registeredAliases.contains(alias)) + if (!_registeredAliases.contains(alias)) { return; + } - Folder *f = FolderMan::instance()->folder(alias); - if (f) - broadcastMessage(buildMessage(QLatin1String("UNREGISTER_PATH"), removeTrailingSlash(f->path()), QString()), true); + auto folder = FolderMan::instance()->folder(alias); + if (folder) { + broadcastMessage(buildMessage(QLatin1String("UNREGISTER_PATH"), + removeTrailingSlash(folder->path()), + QString())); + } _registeredAliases.remove(alias); } diff --git a/test/testfolderman.cpp b/test/testfolderman.cpp index 2469e0022f946..9d0532dab470f 100644 --- a/test/testfolderman.cpp +++ b/test/testfolderman.cpp @@ -19,6 +19,7 @@ #include "accountstate.h" #include #include "configfile.h" +#include "socketapi/socketapi.h" #include "syncenginetestutils.h" #include "testhelper.h"