┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/versioncontrol
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/versioncontrol')
-rw-r--r--src/views/versioncontrol/updateitemstatesthread.cpp26
-rw-r--r--src/views/versioncontrol/updateitemstatesthread.h16
-rw-r--r--src/views/versioncontrol/versioncontrolobserver.cpp14
-rw-r--r--src/views/versioncontrol/versioncontrolobserver.h1
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;
};