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"
18 * The performance of updating the version state of items depends
19 * on the used plugin. To prevent that Dolphin gets blocked by a
20 * slow plugin, the updating is delegated to a thread.
22 class DOLPHIN_EXPORT UpdateItemStatesThread
: public QThread
28 * @param plugin Version control plugin that is used to update the
29 * state of the items. Whenever the plugin is accessed
30 * from the thread creator after starting the thread,
31 * UpdateItemStatesThread::lockPlugin() and
32 * UpdateItemStatesThread::unlockPlugin() must be used.
33 * @param itemStates List of items, where the states get updated.
35 UpdateItemStatesThread(KVersionControlPlugin
*plugin
, 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 QPointer
<KVersionControlPlugin
> m_plugin
;
47 QMap
<QString
, QVector
<VersionControlObserver::ItemState
>> m_itemStates
;
50 #endif // UPDATEITEMSTATESTHREAD_H