digiKam
Loading...
Searching...
No Matches
advancedrenamedialog.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 : 2009-09-14
7 * Description : a rename dialog for the AdvancedRename utility
8 *
9 * SPDX-FileCopyrightText: 2009-2012 by Andi Clemens <andi dot clemens at gmail dot com>
10 * SPDX-FileCopyrightText: 2013-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QList>
21#include <QPair>
22#include <QTreeWidgetItem>
23#include <QUrl>
24#include <QDialog>
25
26// Local includes
27
28#include "iteminfo.h"
29#include "digikam_export.h"
30
31class QEvent;
32class QMoveEvent;
33class QString;
34class QTreeWidget;
35
36namespace Digikam
37{
38
39class Parser;
40
41class DIGIKAM_GUI_EXPORT AdvancedRenameListItem : public QTreeWidgetItem
42{
43public:
44
45 enum Column
46 {
47 OldName = 0,
48 NewName
49 };
50
51public:
52
53 explicit AdvancedRenameListItem(QTreeWidget* const view);
54 AdvancedRenameListItem(QTreeWidget* const view, const QUrl& info);
55 ~AdvancedRenameListItem() override;
56
57 void setImageUrl(const QUrl& url);
58 QUrl imageUrl() const;
59
60 void setName(const QString& name);
61 QString name() const;
62
63 void setNewName(const QString& name);
64 QString newName() const;
65
66 void markInvalid(bool invalid);
67 bool isNameEqual() const;
68
69private:
70
71 // Disable
73 AdvancedRenameListItem& operator=(const AdvancedRenameListItem&) = delete;
74
75private:
76
77 class Private;
78 Private* const d = nullptr;
79};
80
81// --------------------------------------------------------
82
83typedef QPair<QUrl, QString> NewNameInfo;
84typedef QList<NewNameInfo> NewNamesList;
85
86class DIGIKAM_GUI_EXPORT AdvancedRenameDialog : public QDialog
87{
88 Q_OBJECT
89
90public:
91
92 explicit AdvancedRenameDialog(QWidget* const parent = nullptr);
93 ~AdvancedRenameDialog() override;
94
95 NewNamesList newNames() const;
96
97public Q_SLOTS:
98
99 void slotAddImages(const QList<QUrl>& urls);
100
101private Q_SLOTS:
102
103 void slotParseStringChanged(const QString&);
104 void slotReturnPressed();
105
106 void slotSortActionTriggered(QAction*);
107 void slotSortDirectionTriggered(QAction*);
108
109 void slotShowContextMenu(const QPoint&);
110 void slotHelp();
111
112private:
113
114 void setupWidgets();
115 void setupConnections();
116
117 void initDialog();
118 void readSettings();
119 void writeSettings();
120 bool checkNewNames() const;
121
122 NewNamesList filterNewNames() const;
123
124private:
125
126 // Disable
128 AdvancedRenameDialog& operator=(const AdvancedRenameDialog&) = delete;
129
130private:
131
132 class Private;
133 Private* const d = nullptr;
134};
135
136} // namespace Digikam
Definition advancedrenamedialog.h:87
Definition advancedrenamedialog.h:42
Column
Definition advancedrenamedialog.h:46
Definition datefolderview.cpp:34
QPair< QUrl, QString > NewNameInfo
Definition advancedrenamedialog.h:83
QList< NewNameInfo > NewNamesList
Definition advancedrenamedialog.h:84