digiKam
Loading...
Searching...
No Matches
advancedrenamemanager.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 : 2010-08-08
7 * Description : a class that manages the files to be renamed
8 *
9 * SPDX-FileCopyrightText: 2009-2012 by Andi Clemens <andi dot clemens 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 <QUrl>
20#include <QString>
21#include <QStringList>
22#include <QObject>
23
24// Local includes
25
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
31class AdvancedRenameWidget;
32class Parser;
33class ParseSettings;
34
35class DIGIKAM_GUI_EXPORT AdvancedRenameManager : public QObject
36{
37 Q_OBJECT
38
39public:
40
42 {
43 DefaultParser = 0,
44 ImportParser
45 };
46
48 {
49 SortName = 0,
52 SortCustom
53 };
54
56 {
57 SortAscending = 0,
58 SortDescending
59 };
60
61public:
62
64 explicit AdvancedRenameManager(const QList<ParseSettings>& files);
65 ~AdvancedRenameManager() override;
66
67 void addFiles(const QList<ParseSettings>& files);
68 void reset();
69
70 void parseFiles();
71 void parseFiles(const ParseSettings& settings);
72 void parseFiles(const QString& parseString);
73 void parseFiles(const QString& parseString, const ParseSettings& settings);
74
75 void setParserType(ParserType type);
76 Parser* getParser() const;
77
78 void setSortAction(SortAction action);
79 SortAction sortAction() const;
80
81 void setSortDirection(SortDirection direction);
82 SortDirection sortDirection() const;
83
84 void setStartIndex(int index);
85 void setCutFileName(int index);
86
87 void setWidget(AdvancedRenameWidget* widget);
88
89 int indexOfFile(const QString& filename);
90 int indexOfFolder(const QString& filename);
91 int indexOfFileGroup(const QString& filename);
92 int indexOfFileCounter(const QString& filename);
93
94 QString randomStringOfIndex(int index);
95 QString newName(const QString& filename) const;
96
97 QStringList fileList() const;
98 QMap<QString, QString> newFileList(bool checkFileSystem = false) const;
99
100Q_SIGNALS:
101
102 void signalSortingChanged(QList<QUrl>);
103
104private:
105
106 void addFile(const QString& filename) const;
107 void addFile(const QString& filename, const QDateTime& datetime) const;
108 bool initialize();
109 void initializeFileList();
110 void resetState();
111
112 QString fileGroupKey(const QString& filename) const;
113
114 void clearMappings();
115 void clearAll();
116
117private:
118
119 // Disable
120 AdvancedRenameManager(QObject*) = delete;
122 AdvancedRenameManager& operator=(const AdvancedRenameManager&) = delete;
123
124private:
125
126 class Private;
127 Private* const d = nullptr;
128};
129
130} // namespace Digikam
Definition advancedrenamemanager.h:36
SortAction
Definition advancedrenamemanager.h:48
@ SortDate
Definition advancedrenamemanager.h:50
@ SortSize
Definition advancedrenamemanager.h:51
SortDirection
Definition advancedrenamemanager.h:56
ParserType
Definition advancedrenamemanager.h:42
void signalSortingChanged(QList< QUrl >)
Definition advancedrenamewidget.h:36
Definition parsesettings.h:33
Definition parser.h:35
Definition datefolderview.cpp:34
@ SortAction
Definition itemdragdrop.cpp:55