┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/versioncontrol/updateitemstatesthread.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2024-03-30 10:55:15 +0100
committerMéven Car <[email protected]>2024-04-04 13:39:47 +0200
commitb9024361fa922d9cd423aa05721a337a59b98229 (patch)
tree99d662a1513bfd25dbc0ae8ea1de46a5f6157c1d /src/views/versioncontrol/updateitemstatesthread.cpp
parent95e88ff1fcfa475b47ad9274ef65a12e49b20f20 (diff)
versioncontrol: make observer the sole owner of plugins
Also properly shutdown thread.
Diffstat (limited to 'src/views/versioncontrol/updateitemstatesthread.cpp')
-rw-r--r--src/views/versioncontrol/updateitemstatesthread.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/views/versioncontrol/updateitemstatesthread.cpp b/src/views/versioncontrol/updateitemstatesthread.cpp
index e6a0f68fa..c008d1d03 100644
--- a/src/views/versioncontrol/updateitemstatesthread.cpp
+++ b/src/views/versioncontrol/updateitemstatesthread.cpp
@@ -26,26 +26,21 @@ UpdateItemStatesThread::~UpdateItemStatesThread()
void UpdateItemStatesThread::run()
{
Q_ASSERT(!m_itemStates.isEmpty());
- if (!m_plugin) {
- return;
- }
QMutexLocker pluginLocker(m_globalPluginMutex);
QMap<QString, QVector<VersionControlObserver::ItemState>>::iterator it = m_itemStates.begin();
- for (; it != m_itemStates.end() && m_plugin; ++it) {
+ for (; it != m_itemStates.end() && !isInterruptionRequested(); ++it) {
if (m_plugin->beginRetrieval(it.key())) {
QVector<VersionControlObserver::ItemState> &items = it.value();
const int count = items.count();
- for (int i = 0; i < count && m_plugin; ++i) {
+ for (int i = 0; i < count && !isInterruptionRequested(); ++i) {
const KFileItem &item = items.at(i).first;
const KVersionControlPlugin::ItemVersion version = m_plugin->itemVersion(item);
items[i].second = version;
}
}
- if (m_plugin) {
- m_plugin->endRetrieval();
- }
+ m_plugin->endRetrieval();
}
}