diff options
| author | Méven Car <[email protected]> | 2025-01-31 18:34:27 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2025-02-08 13:02:12 +0100 |
| commit | 49ca4692c2ba592fb9e867b3eee36a64a15a4105 (patch) | |
| tree | a61bc68e45734ab55787658d887dc328fb3d5d96 /src/views | |
| parent | 3ff3b35e963269f31cdf572257b25ea17c6b6958 (diff) | |
VersionControlObserver: start scanning earlier
And avoid scanning directory that don't need it.
Stops the working thread upon model change.
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/versioncontrol/versioncontrolobserver.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
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<QAction *> 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(); } |
