digiKam
Loading...
Searching...
No Matches
advancedrenamewidget.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-05-22
7 * Description : a control widget for the AdvancedRename utility
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 <QString>
20#include <QWidget>
21
22// Local includes
23
24#include "rule.h"
25#include "digikam_export.h"
26
27class QMenu;
28
29namespace Digikam
30{
31
32class ParseSettings;
33class Parser;
34
35class DIGIKAM_GUI_EXPORT AdvancedRenameWidget : public QWidget
36{
37 Q_OBJECT
38
39public:
40
42 {
44 LayoutCompact
45 };
46
48 {
49 None = 0x0,
50 ToolTipButton = 0x1,
51 TokenButtons = 0x2,
52 ModifierToolButton = 0x4,
53 DefaultControls = TokenButtons | ToolTipButton | ModifierToolButton
54 };
55 Q_DECLARE_FLAGS(ControlWidgets, ControlWidget)
56
57public:
58
59 explicit AdvancedRenameWidget(QWidget* const parent = nullptr);
60 ~AdvancedRenameWidget() override;
61
65 QString parseString() const;
66
72 void setParseString(const QString& text);
73
74 void setParseTimerDuration(int milliseconds);
75
79 void clearParseString();
80
84 void clear();
85
91 void setParser(Parser* parser);
92
96 Parser* parser() const;
97
103 QString parse(ParseSettings& settings) const;
104
110 void setControlWidgets(ControlWidgets mask);
111
117 void setLayoutStyle(LayoutStyle style);
118
122 void focusLineEdit();
123
127 void highlightLineEdit();
128
132 void highlightLineEdit(const QString& word);
133
134Q_SIGNALS:
135
136 void signalTextChanged(const QString&);
138
139private Q_SLOTS:
140
141 void slotToolTipButtonToggled(bool);
142 void slotTokenMarked(bool);
143
144private:
145
146 void createToolTip();
147
148 void registerParserControls();
149 QMenu* createControlsMenu(QWidget* const parent, const RulesList& rules);
150
151 void calculateLayout();
152
153 void setupWidgets();
154
155 void readSettings();
156 void writeSettings();
157
158private:
159
160 // Disable
162 AdvancedRenameWidget& operator=(const AdvancedRenameWidget&) = delete;
163
164private:
165
166 class Private;
167 Private* const d = nullptr;
168};
169
170} // namespace Digikam
171
172Q_DECLARE_OPERATORS_FOR_FLAGS(Digikam::AdvancedRenameWidget::ControlWidgets)
Definition advancedrenamewidget.h:36
ControlWidget
Definition advancedrenamewidget.h:48
void signalTextChanged(const QString &)
LayoutStyle
Definition advancedrenamewidget.h:42
@ LayoutNormal
Definition advancedrenamewidget.h:43
Definition parsesettings.h:33
Definition parser.h:35
Definition datefolderview.cpp:34
QList< Rule * > RulesList
Definition rule.h:180