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
, const QMap
<QString
, QVector
<VersionControlObserver::ItemState
>> &itemStates
);
35 ~UpdateItemStatesThread() override
;
37 QMap
<QString
, QVector
<VersionControlObserver::ItemState
>> itemStates() const;
43 QMutex
*m_globalPluginMutex
; // Protects the m_plugin globally
44 KVersionControlPlugin
*m_plugin
;
46 QMap
<QString
, QVector
<VersionControlObserver::ItemState
>> m_itemStates
;
49 #endif // UPDATEITEMSTATESTHREAD_H