X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/be629fe8501941138da849cf1179ad67cd5570cb..5454283008f2:/src/views/versioncontrol/versioncontrolobserver.h diff --git a/src/views/versioncontrol/versioncontrolobserver.h b/src/views/versioncontrol/versioncontrolobserver.h index e160008d7..c817c2187 100644 --- a/src/views/versioncontrol/versioncontrolobserver.h +++ b/src/views/versioncontrol/versioncontrolobserver.h @@ -20,12 +20,14 @@ #ifndef VERSIONCONTROLOBSERVER_H #define VERSIONCONTROLOBSERVER_H -#include +#include "dolphin_export.h" + +#include "kversioncontrolplugin.h" #include -#include + +#include #include -#include #include #include @@ -43,7 +45,7 @@ class UpdateItemStatesThread; * * @see VersionControlPlugin */ -class LIBDOLPHINPRIVATE_EXPORT VersionControlObserver : public QObject +class DOLPHIN_EXPORT VersionControlObserver : public QObject { Q_OBJECT @@ -54,8 +56,7 @@ public: void setModel(KFileItemModel* model); KFileItemModel* model() const; - QList contextMenuActions(const KFileItemList& items) const; - QList contextMenuActions(const QString& directory) const; + QList actions(const KFileItemList& items) const; signals: /** @@ -101,20 +102,31 @@ private slots: void slotThreadFinished(); private: - struct ItemState - { - int index; - KFileItem item; - KVersionControlPlugin::VersionState version; - }; + typedef QPair ItemState; void updateItemStates(); + /** + * It creates a item state list for every expanded directory and stores + * this list together with the directory url in the \a itemStates map. + * + * @itemStates A map of item state lists for every expanded directory + * and its items, where the "key" is the directory url and + * the "value" is a list of ItemStates for every item + * within this directory. + * @firstIndex The index to start the processing from, this is needed + * because this function is recursively called. + * + * @return The number of (recursive) processed items. + */ + int createItemStatesList(QMap >& itemStates, + const int firstIndex = 0); + /** * Returns a matching plugin for the given directory. * 0 is returned, if no matching plugin has been found. */ - KVersionControlPlugin* searchPlugin(const KUrl& directory) const; + KVersionControlPlugin* searchPlugin(const QUrl& directory) const; /** * Returns true, if the directory contains a version control information.