]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/revisioncontrolobserver.h
The performance of updating the revision state of items depends on the used plugin...
[dolphin.git] / src / revisioncontrolobserver.h
index 14ea0528eacd1fe9e4e7381ca41c1686894e2d34..c5cf9bb0dce1272336e3d6fbb0d868d9ff80ce55 100644 (file)
 
 #include <libdolphin_export.h>
 
+#include <kfileitem.h>
+#include <revisioncontrolplugin.h>
 #include <QObject>
+#include <QPersistentModelIndex>
 #include <QString>
 
 class DolphinModel;
 class KDirLister;
 class QAbstractItemView;
+class QThread;
 class QTimer;
-class RevisionControlPlugin;
+class UpdateItemStatesThread;
 
 /**
  * @brief Observes all revision control plugins.
@@ -50,16 +54,31 @@ public:
 private slots:
     void delayedDirectoryVerification();
     void verifyDirectory();
-
+    void applyUpdatedItemStates();
+    
 private:
     void updateItemStates();
 
 private:
+    struct ItemState
+    {
+        QPersistentModelIndex index;
+        KFileItem item;
+        RevisionControlPlugin::RevisionState revision;
+    };
+    
+    bool m_pendingItemStatesUpdate;
+    
     QAbstractItemView* m_view;
     KDirLister* m_dirLister;
     DolphinModel* m_dolphinModel;
+    
     QTimer* m_dirVerificationTimer;
+    
     RevisionControlPlugin* m_plugin;
+    UpdateItemStatesThread* m_updateItemStatesThread;
+
+    friend class UpdateItemStatesThread;
 };
 
 #endif // REVISIONCONTROLOBSERVER_H