digiKam
Loading...
Searching...
No Matches
workflowlist.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 : 2012-12-18
7 * Description : Customized Workflow Settings list.
8 *
9 * SPDX-FileCopyrightText: 2012-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 WorkflowList;
35
36class WorkflowItem : public QTreeWidgetItem
37{
38
39public:
40
41 WorkflowItem(WorkflowList* const parent, const QString& name);
42 ~WorkflowItem() override = default;
43
44 QString title() const;
45 int count() const;
46 void setItem(const QString& title = QString(),
47 const QString& desc = QString(),
48 int count = 0);
49
50private:
51
52 Q_DISABLE_COPY(WorkflowItem)
53};
54
55// -------------------------------------------------------------------------
56
57class WorkflowList : public QTreeWidget
58{
59 Q_OBJECT
60
61public:
62
63 explicit WorkflowList(QWidget* const parent);
64 ~WorkflowList() override = default;
65
66Q_SIGNALS:
67
68 void signalAssignQueueSettings(const QString&);
69 void signalUpdateQueueSettings(const QString&);
70
71public Q_SLOTS:
72
73 void slotRemoveQueueSettings(const QString& title);
74 void slotAddQueueSettings(const QString& title);
75
76private Q_SLOTS:
77
78 void slotContextMenu();
79 void slotAssignQueueSettings();
80
81private:
82
83 WorkflowItem* findByTitle(const QString& title);
84
85 void startDrag(Qt::DropActions supportedActions) override;
86 QStringList mimeTypes() const override;
87
88#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
89
90 QMimeData* mimeData(const QList<QTreeWidgetItem*>& items) const override;
91
92#else
93
94 // cppcheck-suppress passedByValue
95 QMimeData* mimeData(const QList<QTreeWidgetItem*> items) const override; // clazy:exclude=function-args-by-ref
96
97#endif
98
99 void mouseDoubleClickEvent(QMouseEvent*) override;
100
101private:
102
103 QString m_lastAssignedTitle;
104};
105
106} // namespace Digikam
Definition workflowlist.h:37
QString title() const
Definition workflowlist.cpp:54
~WorkflowItem() override=default
int count() const
Definition workflowlist.cpp:59
void setItem(const QString &title=QString(), const QString &desc=QString(), int count=0)
Definition workflowlist.cpp:64
Definition workflowlist.h:58
void signalUpdateQueueSettings(const QString &)
~WorkflowList() override=default
void slotAddQueueSettings(const QString &title)
Definition workflowlist.cpp:133
void slotRemoveQueueSettings(const QString &title)
Definition workflowlist.cpp:143
void signalAssignQueueSettings(const QString &)
Definition datefolderview.cpp:34