File indexing completed on 2025-03-09 03:58:53
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2012-12-18 0007 * Description : Customized Workflow Settings list. 0008 * 0009 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * 0011 * SPDX-License-Identifier: GPL-2.0-or-later 0012 * 0013 * ============================================================ */ 0014 0015 #ifndef DIGIKAM_BQM_WORK_FLOW_LIST_H 0016 #define DIGIKAM_BQM_WORK_FLOW_LIST_H 0017 0018 // Qt includes 0019 0020 #include <QTreeWidget> 0021 #include <QWidget> 0022 #include <QPixmap> 0023 #include <QMap> 0024 #include <QString> 0025 #include <QList> 0026 0027 // Local includes 0028 0029 #include "batchtool.h" 0030 #include "batchtoolsfactory.h" 0031 0032 namespace Digikam 0033 { 0034 0035 class WorkflowList; 0036 0037 class WorkflowItem : public QTreeWidgetItem 0038 { 0039 0040 public: 0041 0042 WorkflowItem(WorkflowList* const parent, const QString& name); 0043 ~WorkflowItem() override; 0044 0045 QString title() const; 0046 int count() const; 0047 void setItem(const QString& title = QString(), 0048 const QString& desc = QString(), 0049 int count = 0); 0050 0051 private: 0052 0053 Q_DISABLE_COPY(WorkflowItem) 0054 }; 0055 0056 // ------------------------------------------------------------------------- 0057 0058 class WorkflowList : public QTreeWidget 0059 { 0060 Q_OBJECT 0061 0062 public: 0063 0064 explicit WorkflowList(QWidget* const parent); 0065 ~WorkflowList() override; 0066 0067 Q_SIGNALS: 0068 0069 void signalAssignQueueSettings(const QString&); 0070 void signalUpdateQueueSettings(const QString&); 0071 0072 public Q_SLOTS: 0073 0074 void slotRemoveQueueSettings(const QString& title); 0075 void slotAddQueueSettings(const QString& title); 0076 0077 private Q_SLOTS: 0078 0079 void slotContextMenu(); 0080 void slotAssignQueueSettings(); 0081 0082 private: 0083 0084 WorkflowItem* findByTitle(const QString& title); 0085 0086 void startDrag(Qt::DropActions supportedActions) override; 0087 QStringList mimeTypes() const override; 0088 0089 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) 0090 0091 QMimeData* mimeData(const QList<QTreeWidgetItem*>& items) const override; 0092 0093 #else 0094 0095 // cppcheck-suppress passedByValue 0096 QMimeData* mimeData(const QList<QTreeWidgetItem*> items) const override; // clazy:exclude=function-args-by-ref 0097 0098 #endif 0099 0100 void mouseDoubleClickEvent(QMouseEvent*) override; 0101 0102 private: 0103 0104 QString m_lastAssignedTitel; 0105 }; 0106 0107 } // namespace Digikam 0108 0109 #endif // DIGIKAM_BQM_WORK_FLOW_LIST_H