diff options
Diffstat (limited to 'src/views/versioncontrol')
| -rw-r--r-- | src/views/versioncontrol/updateitemstatesthread.cpp | 26 | ||||
| -rw-r--r-- | src/views/versioncontrol/updateitemstatesthread.h | 16 | ||||
| -rw-r--r-- | src/views/versioncontrol/versioncontrolobserver.cpp | 14 | ||||
| -rw-r--r-- | src/views/versioncontrol/versioncontrolobserver.h | 1 |
4 files changed, 8 insertions, 49 deletions
diff --git a/src/views/versioncontrol/updateitemstatesthread.cpp b/src/views/versioncontrol/updateitemstatesthread.cpp index 6be07d361..6457f607d 100644 --- a/src/views/versioncontrol/updateitemstatesthread.cpp +++ b/src/views/versioncontrol/updateitemstatesthread.cpp @@ -28,7 +28,6 @@ UpdateItemStatesThread::UpdateItemStatesThread(KVersionControlPlugin* plugin, QThread(), m_globalPluginMutex(0), m_plugin(plugin), - m_retrievedItems(false), m_itemStates(itemStates) { // Several threads may share one instance of a plugin. A global @@ -47,12 +46,11 @@ void UpdateItemStatesThread::run() Q_ASSERT(!m_itemStates.isEmpty()); Q_ASSERT(m_plugin); - m_retrievedItems = false; - QMutexLocker pluginLocker(m_globalPluginMutex); - foreach (const QString& directory, m_itemStates.keys()) { - if (m_plugin->beginRetrieval(directory)) { - QVector<VersionControlObserver::ItemState>& items = m_itemStates[directory]; + QMap<QString, QVector<VersionControlObserver::ItemState> >::iterator it = m_itemStates.begin(); + for (; it != m_itemStates.end(); ++it) { + if (m_plugin->beginRetrieval(it.key())) { + QVector<VersionControlObserver::ItemState>& items = it.value(); const int count = items.count(); KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin); @@ -68,29 +66,13 @@ void UpdateItemStatesThread::run() } m_plugin->endRetrieval(); - m_retrievedItems = true; } } } -bool UpdateItemStatesThread::lockPlugin() -{ - return m_globalPluginMutex->tryLock(300); -} - -void UpdateItemStatesThread::unlockPlugin() -{ - m_globalPluginMutex->unlock(); -} - QMap<QString, QVector<VersionControlObserver::ItemState> > UpdateItemStatesThread::itemStates() const { return m_itemStates; } -bool UpdateItemStatesThread::retrievedItems() const -{ - return m_retrievedItems; -} - #include "updateitemstatesthread.moc" diff --git a/src/views/versioncontrol/updateitemstatesthread.h b/src/views/versioncontrol/updateitemstatesthread.h index 2914bc2b7..5c6c6a208 100644 --- a/src/views/versioncontrol/updateitemstatesthread.h +++ b/src/views/versioncontrol/updateitemstatesthread.h @@ -50,23 +50,8 @@ public: const QMap<QString, QVector<VersionControlObserver::ItemState> >& itemStates); virtual ~UpdateItemStatesThread(); - /** - * Whenever the plugin is accessed by the thread creator, lockPlugin() must - * be invoked. True is returned, if the plugin could be locked within 300 - * milliseconds. - */ - bool lockPlugin(); - - /** - * Must be invoked if lockPlugin() returned true and plugin has been accessed - * by the thread creator. - */ - void unlockPlugin(); - QMap<QString, QVector<VersionControlObserver::ItemState> > itemStates() const; - bool retrievedItems() const; - protected: virtual void run(); @@ -74,7 +59,6 @@ private: QMutex* m_globalPluginMutex; // Protects the m_plugin globally KVersionControlPlugin* m_plugin; - bool m_retrievedItems; QMap<QString, QVector<VersionControlObserver::ItemState> > m_itemStates; }; diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index 769c290f9..6affe80d3 100644 --- a/src/views/versioncontrol/versioncontrolobserver.cpp +++ b/src/views/versioncontrol/versioncontrolobserver.cpp @@ -198,20 +198,15 @@ void VersionControlObserver::slotThreadFinished() return; } - if (!thread->retrievedItems()) { - // Ignore m_silentUpdate for an error message - emit errorMessage(i18nc("@info:status", "Update of version information failed.")); - return; - } - const QMap<QString, QVector<ItemState> >& itemStates = thread->itemStates(); - foreach (const QString& directory, itemStates.keys()) { - const QVector<ItemState>& items = itemStates.value(directory); + QMap<QString, QVector<ItemState> >::const_iterator it = itemStates.constBegin(); + for (; it != itemStates.constEnd(); ++it) { + const QVector<ItemState>& items = it.value(); foreach (const ItemState& item, items) { QHash<QByteArray, QVariant> values; values.insert("version", QVariant(item.version)); - m_model->setData(item.index, values); + m_model->setData(m_model->index(item.item), values); } } @@ -270,7 +265,6 @@ int VersionControlObserver::createItemStatesList(QMap<QString, QVector<ItemState if (expansionLevel == currentExpansionLevel) { ItemState itemState; - itemState.index = index; itemState.item = m_model->fileItem(index); itemState.version = KVersionControlPlugin2::UnversionedVersion; diff --git a/src/views/versioncontrol/versioncontrolobserver.h b/src/views/versioncontrol/versioncontrolobserver.h index 980374af9..d12d2cfe0 100644 --- a/src/views/versioncontrol/versioncontrolobserver.h +++ b/src/views/versioncontrol/versioncontrolobserver.h @@ -102,7 +102,6 @@ private slots: private: struct ItemState { - int index; KFileItem item; KVersionControlPlugin2::ItemVersion version; }; |
