digiKam
Loading...
Searching...
No Matches
toolslistview.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2008-11-24
7 * Description : Available batch tools list.
8 *
9 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QTreeWidget>
20#include <QWidget>
21#include <QPixmap>
22#include <QMap>
23#include <QString>
24#include <QList>
25
26// Local includes
27
28#include "batchtool.h"
29#include "batchtoolsfactory.h"
30
31namespace Digikam
32{
33
34class ToolListViewGroup : public QTreeWidgetItem
35{
36
37public:
38
39 ToolListViewGroup(QTreeWidget* const parent,
41 ~ToolListViewGroup() override = default;
42
44
45private:
46
48
49 private:
50
51 Q_DISABLE_COPY(ToolListViewGroup)
52};
53
54// -------------------------------------------------------------------------
55
56class ToolListViewItem : public QTreeWidgetItem
57{
58
59public:
60
62 BatchTool* const tool);
63 ~ToolListViewItem() override = default;
64
65 BatchTool* tool() const;
66
67private:
68
69 BatchTool* m_tool = nullptr;
70
71private:
72
73 Q_DISABLE_COPY(ToolListViewItem)
74};
75
76// -------------------------------------------------------------------------
77
78class ToolsListView : public QTreeWidget
79{
80 Q_OBJECT
81
82public:
83
84 explicit ToolsListView(QWidget* const parent);
85 ~ToolsListView() override = default;
86
88
89 void addTool(BatchTool* const tool);
90 bool removeTool(BatchTool* const tool);
91
92Q_SIGNALS:
93
94 void signalAssignTools(const QMultiMap<int, QString>&);
95
96private Q_SLOTS:
97
98 void slotContextMenu();
99 void slotAssignTools();
100 void slotToolVisible(bool);
101
102private:
103
104 bool hasTool(BatchTool* const tool);
105 ToolListViewItem* findTool(BatchTool* const tool);
106 ToolListViewGroup* findToolGroup(BatchTool::BatchToolGroup group);
107
108 void startDrag(Qt::DropActions supportedActions) override;
109 QStringList mimeTypes() const override;
110
111#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
112
113 QMimeData* mimeData(const QList<QTreeWidgetItem*>& items) const override;
114
115#else
116
117 // cppcheck-suppress passedByValue
118 QMimeData* mimeData(const QList<QTreeWidgetItem*> items) const override; // clazy:exclude=function-args-by-ref
119
120#endif
121
122 void mouseDoubleClickEvent(QMouseEvent*) override;
123 QMultiMap<int, QString> itemsToMap(const QList<QTreeWidgetItem*>& items) const;
124};
125
126} // namespace Digikam
Definition batchtool.h:46
BatchToolGroup
Definition batchtool.h:52
Definition toolslistview.h:35
BatchTool::BatchToolGroup toolGroup() const
Definition toolslistview.cpp:108
~ToolListViewGroup() override=default
Definition toolslistview.h:57
~ToolListViewItem() override=default
BatchTool * tool() const
Definition toolslistview.cpp:131
Definition toolslistview.h:79
BatchToolsList toolsList()
Definition toolslistview.cpp:157
void signalAssignTools(const QMultiMap< int, QString > &)
void addTool(BatchTool *const tool)
Definition toolslistview.cpp:178
~ToolsListView() override=default
bool removeTool(BatchTool *const tool)
Definition toolslistview.cpp:213
Definition datefolderview.cpp:34
QList< BatchTool * > BatchToolsList
Definition batchtoolutils.h:35