digiKam
Loading...
Searching...
No Matches
queuelist.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-21
7 * Description : Batch Queue Manager items 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 <QIcon>
23
24// Local includes
25
26#include "batchtool.h"
27#include "batchtoolutils.h"
28#include "iteminfo.h"
29#include "iteminfolist.h"
30#include "loadingdescription.h"
31#include "queuesettingsview.h"
32
33namespace Digikam
34{
35
36class QueueListView;
37
38class QueueListViewItem : public QTreeWidgetItem
39{
40
41public:
42
43 QueueListViewItem(QueueListView* const view, const ItemInfo& info);
44 ~QueueListViewItem() override;
45
46 bool hasValidThumbnail() const;
47
48 void setInfo(const ItemInfo& info);
49 ItemInfo info() const;
50
51 void assignTool(int index, const BatchToolSet& set);
52 void unassignTool(int index);
53
54 void setThumb(const QPixmap& pix, bool hasThumb = true);
55
56 void animProgress();
57
58 void setCanceled();
59 void setFailed();
60
61 void setDone();
62 bool isDone() const;
63
64 void setBusy();
65 bool isBusy() const;
66
67 void reset();
68
69 void setDestFileName(const QString& str);
70 QString destFileName() const;
71 QString destBaseName() const;
72 QString destSuffix() const;
73
74private:
75
76 void setPixmap(const QPixmap& pix);
77
78private:
79
80 class Private;
81 Private* const d = nullptr;
82
83private:
84
85 Q_DISABLE_COPY(QueueListViewItem)
86};
87
88// -------------------------------------------------------------------------
89
91
92class QueueListView : public QTreeWidget
93{
94 Q_OBJECT
95
96public:
97
104 Q_ENUM(ItemListType)
105
106public:
107
108 explicit QueueListView(QWidget* const parent);
109 ~QueueListView() override;
110
111 void cancelItems();
112 int itemsCount();
113 void removeItemByInfo(const ItemInfo& info);
114 void removeItemById(qlonglong id);
115
117 int pendingItemsCount();
118 int pendingTasksCount();
119
120 QueueListViewItem* findItemByUrl(const QUrl& url);
121 QueueListViewItem* findItemById(qlonglong id);
122
124 QueueSettings settings() const;
125
126 void setAssignedTools(const AssignedBatchTools& tools);
128
129 void setEnableToolTips(bool val);
130
131 void reloadThumbs(const QUrl& url);
132
133 void setItemBusy(qlonglong id);
134 QPixmap progressPixmapForIndex(int index) const;
135
136Q_SIGNALS:
137
139
140public Q_SLOTS:
141
142 void slotClearList();
144 void slotRemoveItemsDone();
145 void slotAddItems(const ItemInfoList&);
147
148private Q_SLOTS:
149
150 void slotCollectionImageChange(const CollectionImageChangeset&);
151 void slotThumbnailLoaded(const LoadingDescription&, const QPixmap&);
152 void slotContextMenu();
153 void slotToolTip();
154 void slotProgressTimerDone();
155
156private:
157
158 bool findItemByInfo(const ItemInfo& info);
159
160 void removeItems(int removeType);
161 void updateDestFileNames();
162 void hideToolTip();
163 bool acceptToolTip(const QPoint& pos) const;
164
165#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
166
167 QMimeData* mimeData(const QList<QTreeWidgetItem*>& items) const override;
168
169#else
170
171 // cppcheck-suppress passedByValue
172 QMimeData* mimeData(const QList<QTreeWidgetItem*> items) const override; // clazy:exclude=function-args-by-ref
173
174#endif
175
176 Qt::DropActions supportedDropActions() const override;
177 void startDrag(Qt::DropActions supportedActions) override;
178
179 void dragMoveEvent(QDragMoveEvent*) override;
180 void dragEnterEvent(QDragEnterEvent*) override;
181 void dropEvent(QDropEvent*) override;
182 void mouseMoveEvent(QMouseEvent*) override;
183 void wheelEvent(QWheelEvent*) override;
184 void keyPressEvent(QKeyEvent*) override;
185 void focusOutEvent(QFocusEvent*) override;
186 void leaveEvent(QEvent*) override;
187 void resetQueue();
188
189 void drawRow(QPainter* p,
190 const QStyleOptionViewItem& opt,
191 const QModelIndex& index) const override;
192
193private:
194
195 class Private;
196 Private* const d = nullptr;
197};
198
199} // namespace Digikam
Definition batchtoolutils.h:81
Definition batchtoolutils.h:43
Definition coredbchangesets.h:142
Definition iteminfolist.h:37
Definition iteminfo.h:68
Definition loadingdescription.h:35
Definition queuelist.h:39
void unassignTool(int index)
void setFailed()
Definition queuelist.cpp:181
bool isBusy() const
Definition queuelist.cpp:218
void reset()
Definition queuelist.cpp:204
ItemInfo info() const
Definition queuelist.cpp:121
void setThumb(const QPixmap &pix, bool hasThumb=true)
Definition queuelist.cpp:141
QString destFileName() const
Definition queuelist.cpp:229
bool hasValidThumbnail() const
Definition queuelist.cpp:110
QString destBaseName() const
Definition queuelist.cpp:234
bool isDone() const
Definition queuelist.cpp:199
void animProgress()
Definition queuelist.cpp:153
void setDone()
Definition queuelist.cpp:190
void setCanceled()
Definition queuelist.cpp:172
void setInfo(const ItemInfo &info)
Definition queuelist.cpp:115
void assignTool(int index, const BatchToolSet &set)
QString destSuffix() const
Definition queuelist.cpp:241
void setDestFileName(const QString &str)
Definition queuelist.cpp:223
void setBusy()
Definition queuelist.cpp:213
~QueueListViewItem() override
Definition queuelist.cpp:105
Definition queuelist.h:93
AssignedBatchTools assignedTools() const
Definition queuelist.cpp:1057
void cancelItems()
Definition queuelist.cpp:949
void removeItemById(qlonglong id)
Definition queuelist.cpp:856
QueueSettings settings() const
Definition queuelist.cpp:1045
void slotRemoveSelectedItems()
Definition queuelist.cpp:779
void slotRemoveItemsDone()
Definition queuelist.cpp:786
QueueListViewItem * findItemByUrl(const QUrl &url)
Definition queuelist.cpp:910
~QueueListView() override
Definition queuelist.cpp:342
int pendingTasksCount()
Definition queuelist.cpp:1018
int itemsCount()
Definition queuelist.cpp:929
void setAssignedTools(const AssignedBatchTools &tools)
Definition queuelist.cpp:1050
int pendingItemsCount()
Definition queuelist.cpp:1013
ItemInfoList itemsList(ItemListType type)
Definition queuelist.cpp:966
void slotAddItems(const ItemInfoList &)
Definition queuelist.cpp:692
void removeItemByInfo(const ItemInfo &info)
Definition queuelist.cpp:851
void slotAssignedToolsChanged(const AssignedBatchTools &)
Definition queuelist.cpp:1062
void reloadThumbs(const QUrl &url)
Definition queuelist.cpp:1213
QueueListViewItem * findItemById(qlonglong id)
Definition queuelist.cpp:891
void setItemBusy(qlonglong id)
Definition queuelist.cpp:1218
ItemListType
Definition queuelist.h:99
@ All
All items from the list.
Definition queuelist.h:102
@ Pending
Items from the list not yet processed.
Definition queuelist.h:100
@ Selected
Items from the list selected.
Definition queuelist.h:101
void setSettings(const QueueSettings &settings)
Definition queuelist.cpp:1038
QPixmap progressPixmapForIndex(int index) const
Definition queuelist.cpp:348
void setEnableToolTips(bool val)
Definition queuelist.cpp:597
void slotClearList()
Definition queuelist.cpp:772
Definition queuesettings.h:34
Definition datefolderview.cpp:34