diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -182,6 +182,7 @@ #endif m_versionControlObserver = new VersionControlObserver(this); + m_versionControlObserver->setView(this); m_versionControlObserver->setModel(m_model); connect(m_versionControlObserver, &VersionControlObserver::infoMessage, this, &DolphinView::infoMessage); connect(m_versionControlObserver, &VersionControlObserver::errorMessage, this, &DolphinView::errorMessage); diff --git a/src/views/versioncontrol/versioncontrolobserver.h b/src/views/versioncontrol/versioncontrolobserver.h --- a/src/views/versioncontrol/versioncontrolobserver.h +++ b/src/views/versioncontrol/versioncontrolobserver.h @@ -37,6 +37,8 @@ class QTimer; class UpdateItemStatesThread; +class DolphinView; + /** * @brief Observes all version control plugins. * @@ -55,6 +57,8 @@ void setModel(KFileItemModel* model); KFileItemModel* model() const; + void setView(DolphinView* view); + DolphinView* view() const; QList actions(const KFileItemList& items) const; @@ -139,6 +143,7 @@ bool m_silentUpdate; // if true, no messages will be send during the update // of version states + DolphinView* m_view; KFileItemModel* m_model; QTimer* m_dirVerificationTimer; diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp --- a/src/views/versioncontrol/versioncontrolobserver.cpp +++ b/src/views/versioncontrol/versioncontrolobserver.cpp @@ -21,6 +21,7 @@ #include "dolphin_versioncontrolsettings.h" #include "dolphindebug.h" +#include "views/dolphinview.h" #include "kitemviews/kfileitemmodel.h" #include "updateitemstatesthread.h" @@ -85,6 +86,26 @@ return m_model; } +void VersionControlObserver::setView(DolphinView* view) +{ + if (m_view) { + disconnect(m_view, &DolphinView::activated, + this, &VersionControlObserver::delayedDirectoryVerification); + } + + m_view = view; + + if (m_view) { + connect(m_view, &DolphinView::activated, + this, &VersionControlObserver::delayedDirectoryVerification); + } +} + +DolphinView* VersionControlObserver::view() const +{ + return m_view; +} + QList VersionControlObserver::actions(const KFileItemList& items) const { bool hasNullItems = false;