2 * SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #ifndef UPDATEITEMSTATESTHREAD_H
8 #define UPDATEITEMSTATESTHREAD_H
10 #include "dolphin_export.h"
11 #include "views/versioncontrol/versioncontrolobserver.h"
17 * The performance of updating the version state of items depends
18 * on the used plugin. To prevent that Dolphin gets blocked by a
19 * slow plugin, the updating is delegated to a thread.
21 class DOLPHIN_EXPORT UpdateItemStatesThread
: public QThread
27 * @param plugin Version control plugin that is used to update the
28 * state of the items. Whenever the plugin is accessed
29 * from the thread creator after starting the thread,
30 * UpdateItemStatesThread::lockPlugin() and
31 * UpdateItemStatesThread::unlockPlugin() must be used.
32 * @param itemStates List of items, where the states get updated.
34 UpdateItemStatesThread(KVersionControlPlugin
* plugin
,
35 const QMap
<QString
, QVector
<VersionControlObserver::ItemState
> >& itemStates
);
36 ~UpdateItemStatesThread() override
;
38 QMap
<QString
, QVector
<VersionControlObserver::ItemState
> > itemStates() const;
44 QMutex
* m_globalPluginMutex
; // Protects the m_plugin globally
45 KVersionControlPlugin
* m_plugin
;
47 QMap
<QString
, QVector
<VersionControlObserver::ItemState
> > m_itemStates
;
50 #endif // UPDATEITEMSTATESTHREAD_H