From ec29cfff2017b40236edadcae50b8c1a1915d04e Mon Sep 17 00:00:00 2001 From: Anthony Fieroni Date: Sat, 2 Feb 2019 19:38:37 +0200 Subject: [PATCH] [versioncontrolobserver] Update working directory on tab activation Differential Revision: https://phabricator.kde.org/D18605 Signed-off-by: Anthony Fieroni --- src/views/dolphinview.cpp | 1 + .../versioncontrol/versioncontrolobserver.cpp | 21 +++++++++++++++++++ .../versioncontrol/versioncontrolobserver.h | 5 +++++ 3 files changed, 27 insertions(+) diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 617c41acec..d64ae86224 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -182,6 +182,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : #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.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index d2e1ecd13d..09344bc14b 100644 --- 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 @@ KFileItemModel* VersionControlObserver::model() const 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; diff --git a/src/views/versioncontrol/versioncontrolobserver.h b/src/views/versioncontrol/versioncontrolobserver.h index a42bbea634..08279dc866 100644 --- a/src/views/versioncontrol/versioncontrolobserver.h +++ b/src/views/versioncontrol/versioncontrolobserver.h @@ -37,6 +37,8 @@ class QAction; class QTimer; class UpdateItemStatesThread; +class DolphinView; + /** * @brief Observes all version control plugins. * @@ -55,6 +57,8 @@ public: void setModel(KFileItemModel* model); KFileItemModel* model() const; + void setView(DolphinView* view); + DolphinView* view() const; QList actions(const KFileItemList& items) const; @@ -139,6 +143,7 @@ private: 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;