X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3ff3b35e963269f31cdf572257b25ea17c6b6958..49ca4692c2ba592fb9e867b3eee36a64a15a4105:/src/views/versioncontrol/versioncontrolobserver.cpp diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index 3101c7727..521ff8b90 100644 --- a/src/views/versioncontrol/versioncontrolobserver.cpp +++ b/src/views/versioncontrol/versioncontrolobserver.cpp @@ -61,8 +61,16 @@ VersionControlObserver::~VersionControlObserver() void VersionControlObserver::setModel(KFileItemModel *model) { if (m_model) { + if (m_currentPlugin) { + delete m_currentPlugin; + m_currentPlugin = nullptr; + } + if (m_updateItemStatesThread) { + m_updateItemStatesThread->requestInterruption(); + } disconnect(m_model, &KFileItemModel::itemsInserted, this, &VersionControlObserver::delayedDirectoryVerification); disconnect(m_model, &KFileItemModel::itemsChanged, this, &VersionControlObserver::slotItemsChanged); + disconnect(m_model, &KFileItemModel::directoryLoadingCompleted, this, &VersionControlObserver::verifyDirectory); } m_model = model; @@ -70,6 +78,7 @@ void VersionControlObserver::setModel(KFileItemModel *model) if (model) { connect(m_model, &KFileItemModel::itemsInserted, this, &VersionControlObserver::delayedDirectoryVerification); connect(m_model, &KFileItemModel::itemsChanged, this, &VersionControlObserver::slotItemsChanged); + connect(m_model, &KFileItemModel::directoryLoadingCompleted, this, &VersionControlObserver::verifyDirectory); } } @@ -124,12 +133,22 @@ QList VersionControlObserver::actions(const KFileItemList &items) con void VersionControlObserver::delayedDirectoryVerification() { + if (!isVersionControlled()) { + m_dirVerificationTimer->stop(); + return; + } + m_silentUpdate = false; m_dirVerificationTimer->start(); } void VersionControlObserver::silentDirectoryVerification() { + if (!isVersionControlled()) { + m_dirVerificationTimer->stop(); + return; + } + m_silentUpdate = true; m_dirVerificationTimer->start(); }