X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/462982faa361c79daab43ce526ae64646b1ea63c..e018ecafca79a73f1e9d76c577b9529fc3a7ae03:/src/views/versioncontrol/updateitemstatesthread.cpp diff --git a/src/views/versioncontrol/updateitemstatesthread.cpp b/src/views/versioncontrol/updateitemstatesthread.cpp index cf45bbff1..c008d1d03 100644 --- a/src/views/versioncontrol/updateitemstatesthread.cpp +++ b/src/views/versioncontrol/updateitemstatesthread.cpp @@ -6,13 +6,11 @@ #include "updateitemstatesthread.h" - -UpdateItemStatesThread::UpdateItemStatesThread(KVersionControlPlugin* plugin, - const QMap >& itemStates) : - QThread(), - m_globalPluginMutex(nullptr), - m_plugin(plugin), - m_itemStates(itemStates) +UpdateItemStatesThread::UpdateItemStatesThread(KVersionControlPlugin *plugin, const QMap> &itemStates) + : QThread() + , m_globalPluginMutex(nullptr) + , m_plugin(plugin) + , m_itemStates(itemStates) { // Several threads may share one instance of a plugin. A global // mutex is required to serialize the retrieval of version control @@ -28,16 +26,15 @@ UpdateItemStatesThread::~UpdateItemStatesThread() void UpdateItemStatesThread::run() { Q_ASSERT(!m_itemStates.isEmpty()); - Q_ASSERT(m_plugin); QMutexLocker pluginLocker(m_globalPluginMutex); - QMap >::iterator it = m_itemStates.begin(); - for (; it != m_itemStates.end(); ++it) { + QMap>::iterator it = m_itemStates.begin(); + for (; it != m_itemStates.end() && !isInterruptionRequested(); ++it) { if (m_plugin->beginRetrieval(it.key())) { - QVector& items = it.value(); + QVector &items = it.value(); const int count = items.count(); - for (int i = 0; i < count; ++i) { - const KFileItem& item = items.at(i).first; + 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; } @@ -47,8 +44,9 @@ void UpdateItemStatesThread::run() } } -QMap > UpdateItemStatesThread::itemStates() const +QMap> UpdateItemStatesThread::itemStates() const { return m_itemStates; } +#include "moc_updateitemstatesthread.cpp"