digiKam
Loading...
Searching...
No Matches
assignedlist.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-27
7 * Description : batch tools list assigned to an queued item.
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 <QIcon>
22
23// Local includes
24
25#include "batchtool.h"
26#include "batchtoolutils.h"
27
28namespace Digikam
29{
30
31class QueueSettings;
32
33class AssignedListViewItem : public QTreeWidgetItem
34{
35
36public:
37
38 explicit AssignedListViewItem(QTreeWidget* const parent);
39 AssignedListViewItem(QTreeWidget* const parent, QTreeWidgetItem* const preceding);
40 ~AssignedListViewItem() override = default;
41
42 void setIndex(int index);
43
44 void setToolSet(const BatchToolSet& set);
46
47private:
48
49 BatchToolSet m_set;
50
51private:
52
53 Q_DISABLE_COPY(AssignedListViewItem)
54};
55
56// -------------------------------------------------------------------------
57
58class AssignedListView : public QTreeWidget
59{
60 Q_OBJECT
61
62public:
63
64 explicit AssignedListView(QWidget* const parent);
65 ~AssignedListView() override = default;
66
67 int assignedCount();
69
73
74 bool removeTool(const BatchToolSet& set);
75
76 void setBusy(bool b);
77
78Q_SIGNALS:
79
82
83public Q_SLOTS:
84
88 void slotClearToolsList();
89 void slotQueueSelected(int, const QueueSettings&, const AssignedBatchTools&);
91 void slotAssignTools(const QMultiMap<int, QString>&);
92
93protected:
94
95 void keyPressEvent(QKeyEvent*) override;
96
97private Q_SLOTS:
98
99 void slotSelectionChanged();
100 void slotContextMenu();
101
102private:
103
104 AssignedListViewItem* findTool(const BatchToolSet& set);
105 void assignTools(const QMultiMap<int, QString>& map, AssignedListViewItem* const preceding);
106 void refreshIndex();
107
108 Qt::DropActions supportedDropActions() const 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 dragEnterEvent(QDragEnterEvent*) override;
123 void dragMoveEvent(QDragMoveEvent*) override;
124 void dropEvent(QDropEvent*) override;
125};
126
127} // namespace Digikam
Definition batchtoolutils.h:81
Definition assignedlist.h:34
BatchToolSet toolSet()
Definition assignedlist.cpp:91
void setIndex(int index)
Definition assignedlist.cpp:96
~AssignedListViewItem() override=default
void setToolSet(const BatchToolSet &set)
Definition assignedlist.cpp:77
Definition assignedlist.h:59
~AssignedListView() override=default
void setBusy(bool b)
Definition assignedlist.cpp:145
void slotClearToolsList()
Definition assignedlist.cpp:196
void slotAssignTools(const QMultiMap< int, QString > &)
Definition assignedlist.cpp:535
AssignedListViewItem * moveTool(AssignedListViewItem *const preceding, const BatchToolSet &set)
Definition assignedlist.cpp:236
AssignedListViewItem * addTool(const BatchToolSet &set)
Definition assignedlist.cpp:284
void keyPressEvent(QKeyEvent *) override
Definition assignedlist.cpp:133
bool removeTool(const BatchToolSet &set)
Definition assignedlist.cpp:289
void signalAssignedToolsChanged(const AssignedBatchTools &)
void slotRemoveCurrentTool()
Definition assignedlist.cpp:178
void slotSettingsChanged(const BatchToolSet &)
Definition assignedlist.cpp:523
void slotQueueSelected(int, const QueueSettings &, const AssignedBatchTools &)
Definition assignedlist.cpp:502
int assignedCount()
Definition assignedlist.cpp:173
AssignedBatchTools assignedList()
Definition assignedlist.cpp:150
AssignedListViewItem * insertTool(AssignedListViewItem *const preceding, const BatchToolSet &set)
Definition assignedlist.cpp:254
void slotMoveCurrentToolDown()
Definition assignedlist.cpp:220
void signalToolSelected(const BatchToolSet &)
void slotMoveCurrentToolUp()
Definition assignedlist.cpp:204
Definition batchtoolutils.h:43
Definition queuesettings.h:34
Definition datefolderview.cpp:34