]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/versioncontrol/updateitemstatesthread.cpp
versioncontrol: make observer the sole owner of plugins
[dolphin.git] / src / views / versioncontrol / updateitemstatesthread.cpp
index e6a0f68fa192d1de9bb156467eef0cf8b7f15ab3..c008d1d03e839eca4f46edf907f87a6b32b0bafa 100644 (file)
@@ -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();
     }
 }