digiKam
Loading...
Searching...
No Matches
deletedialog.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 : 2005-05-07
7 * Description : a dialog to delete item.
8 *
9 * SPDX-FileCopyrightText: 2004 by Michael Pyne <michael dot pyne at kdemail dot net>
10 * SPDX-FileCopyrightText: 2006 by Ian Monroe <ian at monroe dot nu>
11 * SPDX-FileCopyrightText: 2009 by Andi Clemens <andi dot clemens at gmail dot com>
12 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
13 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
14 *
15 * SPDX-License-Identifier: GPL-2.0-or-later
16 *
17 * ============================================================ */
18
19#pragma once
20
21// Qt includes
22
23#include <QWidget>
24#include <QTreeWidget>
25#include <QUrl>
26#include <QDialog>
27
28// Local includes
29
30#include "digikam_export.h"
31#include "thumbnailloadthread.h"
32
33namespace Digikam
34{
35
36namespace DeleteDialogMode
37{
38
45
54
55} // namespace DeleteDialogMode
56
57// -----------------------------------------------------------
58
59class DeleteItem : public QTreeWidgetItem
60{
61
62public:
63
64 explicit DeleteItem(QTreeWidget* const parent, const QUrl& url);
65 ~DeleteItem() override;
66
67 bool hasValidThumbnail() const;
68 QUrl url() const;
69 QString fileUrl() const;
70
71 void setThumb(const QPixmap& pix, bool hasThumb = true);
72
73private:
74
75 Q_DISABLE_COPY(DeleteItem)
76
77private:
78
79 class Private;
80 Private* const d = nullptr;
81};
82
83// -----------------------------------------------------------
84
85class DeleteItemList : public QTreeWidget
86{
87 Q_OBJECT
88
89public:
90
91 explicit DeleteItemList(QWidget* const parent = nullptr);
92 ~DeleteItemList() override;
93
94private :
95
96 void drawRow(QPainter* p,
97 const QStyleOptionViewItem& opt,
98 const QModelIndex& index) const override;
99
100private Q_SLOTS:
101
102 void slotThumbnailLoaded(const LoadingDescription&, const QPixmap&);
103
104private:
105
106 class Private;
107 Private* const d = nullptr;
108};
109
110// -----------------------------------------------------------
111
112class DeleteWidget : public QWidget
113{
114 Q_OBJECT
115
116public:
117
118 explicit DeleteWidget(QWidget* const parent = nullptr);
119 ~DeleteWidget() override;
120
121 void setUrls(const QList<QUrl>& urls);
124
125private Q_SLOTS:
126
127 void slotShouldDelete(bool);
128
129private:
130
131 void updateText();
132
133private:
134
135 class Private;
136 Private* const d = nullptr;
137
138 friend class DeleteDialog;
139};
140
141// -----------------------------------------------------------
142
143class DeleteDialog : public QDialog
144{
145 Q_OBJECT
146
147public:
148
155
156public:
157
158 explicit DeleteDialog(QWidget* const parent);
159 ~DeleteDialog() override;
160
161 bool confirmDeleteList(const QList<QUrl>& condemnedURLs,
164 bool shouldDelete() const;
165
166 void setUrls(const QList<QUrl>& urls);
169
170protected Q_SLOTS:
171
172 void slotUser1Clicked();
173 void slotShouldDelete(bool);
174
175private Q_SLOTS:
176
177 void slotHelp();
178
179protected:
180
181 void keyPressEvent(QKeyEvent*) override;
182 void showEvent(QShowEvent*) override;
183
184private:
185
186 class Private;
187 Private* const d = nullptr;
188};
189
190} // namespace Digikam
Definition deletedialog.h:144
void presetDeleteMode(DeleteDialogMode::DeleteMode mode)
Definition deletedialog.cpp:595
void keyPressEvent(QKeyEvent *) override
Definition deletedialog.cpp:663
~DeleteDialog() override
Definition deletedialog.cpp:501
Mode
Definition deletedialog.h:150
@ ModeSubalbums
Definition deletedialog.h:153
@ ModeAlbums
Definition deletedialog.h:152
@ ModeFiles
Definition deletedialog.h:151
bool shouldDelete() const
Definition deletedialog.cpp:574
void slotShouldDelete(bool)
Definition deletedialog.cpp:579
void setListMode(DeleteDialogMode::ListMode mode)
Definition deletedialog.cpp:642
void showEvent(QShowEvent *) override
Definition deletedialog.cpp:687
bool confirmDeleteList(const QList< QUrl > &condemnedURLs, DeleteDialogMode::ListMode listMode, DeleteDialogMode::DeleteMode deleteMode)
Definition deletedialog.cpp:511
void setUrls(const QList< QUrl > &urls)
Definition deletedialog.cpp:537
void slotUser1Clicked()
Definition deletedialog.cpp:542
Definition deletedialog.h:86
~DeleteItemList() override
Definition deletedialog.cpp:186
Definition deletedialog.h:60
QUrl url() const
Definition deletedialog.cpp:106
~DeleteItem() override
Definition deletedialog.cpp:96
bool hasValidThumbnail() const
Definition deletedialog.cpp:101
void setThumb(const QPixmap &pix, bool hasThumb=true)
Definition deletedialog.cpp:125
QString fileUrl() const
Definition deletedialog.cpp:111
Definition deletedialog.h:113
void setListMode(DeleteDialogMode::ListMode mode)
Definition deletedialog.cpp:351
~DeleteWidget() override
Definition deletedialog.cpp:323
void setUrls(const QList< QUrl > &urls)
Definition deletedialog.cpp:328
void setDeleteMode(DeleteDialogMode::DeleteMode deleteMode)
Definition deletedialog.cpp:345
Definition loadingdescription.h:35
DeleteMode
Definition deletedialog.h:47
@ UseTrash
Same checkbox as above, preset to trash.
Definition deletedialog.h:51
@ NoChoiceDeletePermanently
Same as above.
Definition deletedialog.h:49
@ DeletePermanently
Same checkbox as above, preset to permanent.
Definition deletedialog.h:52
@ NoChoiceTrash
"Do not show again" checkbox, does not show if config entry is set
Definition deletedialog.h:48
@ UserPreference
Checkbox to toggle trash/permanent, preset to user's last preference.
Definition deletedialog.h:50
ListMode
Definition deletedialog.h:40
@ Subalbums
Definition deletedialog.h:43
@ Albums
Definition deletedialog.h:42
@ Files
Definition deletedialog.h:41
Definition datefolderview.cpp:34