digiKam
Loading...
Searching...
No Matches
dateoption.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-08-08
7 * Description : an option to provide date information to the parser
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 <QDialog>
20#include <QObject>
21#include <QString>
22#include <QVariant>
23
24// Local includes
25
26#include "option.h"
27#include "ruledialog.h"
28
29namespace Ui
30{
31class DateOptionDialogWidget;
32}
33
34namespace Digikam
35{
36
38{
39public:
40
49
50public:
51
52 typedef QPair<QString, QVariant> DateFormatDescriptor;
53 typedef QList<DateFormatDescriptor> DateFormatMap;
54
55public:
56
57 DateFormat();
58 ~DateFormat() = default;
59
60 Type type(const QString& identifier);
61
62 QString identifier(Type type);
63
64 QVariant format(Type type);
65 QVariant format(const QString& identifier);
66
68 {
69 return m_map;
70 };
71
72private:
73
74 DateFormat(const DateFormat&) = delete;
75 DateFormat& operator=(const DateFormat&) = delete;
76
77private:
78
79 DateFormatMap m_map;
80};
81
82// --------------------------------------------------------
83
85{
86 Q_OBJECT
87
88public:
89
96
97public:
98
99 explicit DateOptionDialog(Rule* parent);
100 ~DateOptionDialog() override;
101
102 DateSource dateSource() const;
103
104public:
105
106 Ui::DateOptionDialogWidget* const ui = nullptr;
107
108private Q_SLOTS:
109
110 void slotDateSourceChanged(int);
111 void slotDateFormatChanged(int);
112 void slotCustomFormatChanged(const QString&);
113
114private:
115
116 // Disable
117 explicit DateOptionDialog(QWidget*) = delete;
119 DateOptionDialog& operator=(const DateOptionDialog&);
120
121 QString formattedDateTime(const QDateTime& date);
122 void updateExampleLabel();
123};
124
125// --------------------------------------------------------
126
127class DateOption : public Option
128{
129 Q_OBJECT
130
131public:
132
133 DateOption();
134 ~DateOption() override = default;
135
136protected:
137
138 QString parseOperation(ParseSettings& settings,
139 const QRegularExpressionMatch& match) override;
140
141private Q_SLOTS:
142
143 void slotTokenTriggered(const QString& token) override;
144
145private:
146
147 // Disable
148 explicit DateOption(QObject*) = delete;
149 DateOption(const DateOption&) = delete;
150 DateOption& operator=(const DateOption&) = delete;
151};
152
153} // namespace Digikam
Definition dateoption.h:38
QString identifier(Type type)
Definition dateoption.cpp:75
DateFormatMap & map()
Definition dateoption.h:67
Type type(const QString &identifier)
Definition dateoption.cpp:57
DateFormat()
Definition dateoption.cpp:48
QList< DateFormatDescriptor > DateFormatMap
Definition dateoption.h:53
Type
Definition dateoption.h:42
@ Standard
Definition dateoption.h:43
@ UnixTimeStamp
Definition dateoption.h:46
@ ISO
Definition dateoption.h:44
@ Custom
Definition dateoption.h:47
@ FullText
Definition dateoption.h:45
QVariant format(Type type)
Definition dateoption.cpp:80
QPair< QString, QVariant > DateFormatDescriptor
Definition dateoption.h:52
Definition dateoption.h:85
DateSource
Definition dateoption.h:91
@ FromImage
Definition dateoption.h:92
@ CurrentDateTime
Definition dateoption.h:93
@ FixedDateTime
Definition dateoption.h:94
Ui::DateOptionDialogWidget *const ui
Definition dateoption.h:106
~DateOptionDialog() override
Definition dateoption.cpp:170
DateSource dateSource() const
Definition dateoption.cpp:175
Definition dateoption.h:128
DateOption()
Definition dateoption.cpp:260
QString parseOperation(ParseSettings &settings, const QRegularExpressionMatch &match) override
Definition dateoption.cpp:274
~DateOption() override=default
Definition option.h:25
Definition parsesettings.h:33
Definition ruledialog.h:28
Definition rule.h:32
Definition datefolderview.cpp:34