digiKam
Loading...
Searching...
No Matches
filteraction.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-06-02
7 * Description : class that holds list of applied filters to image
8 *
9 * SPDX-FileCopyrightText: 2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek 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 <QFlags>
21#include <QHash>
22#include <QString>
23#include <QVariant>
24
25// Local includes
26
27#include "digikam_export.h"
28
29namespace Digikam
30{
31
32class DIGIKAM_EXPORT FilterAction
33{
34public:
35
37 {
46 ReproducibleFilter = 0,
47
53 ComplexFilter = 1,
54
59 DocumentedHistory = 2,
60
61 CategoryFirst = ReproducibleFilter,
62 CategoryLast = DocumentedHistory
63 };
64
65 enum Flag
66 {
71 ExplicitBranch = 1 << 0
72 };
73 Q_DECLARE_FLAGS(Flags, Flag)
74
75public:
76
77 FilterAction() = default;
78 FilterAction(const QString& identifier, int version, Category category = ReproducibleFilter);
79
80 bool isNull() const;
81
82 bool operator==(const FilterAction& other) const;
83
84 Category category() const;
85
90 QString identifier() const;
91
97 int version() const;
98
103 QString description() const;
104 void setDescription(const QString& description);
105
106 QString displayableName() const;
107 void setDisplayableName(const QString& displayableName);
108
109 Flags flags() const;
110 void setFlags(Flags flags);
111 void addFlag(Flags flags);
112 void removeFlag(Flags flags);
113
119 bool hasParameters() const;
120 const QHash<QString,QVariant>& parameters() const;
121 QHash<QString, QVariant>& parameters();
122
123 bool hasParameter(const QString& key) const;
124 const QVariant parameter(const QString& key) const;
125 QVariant& parameter(const QString& key);
126
130 template <typename T>
131 T parameter(const QString& key) const
132 {
133 return parameter(key).value<T>();
134 }
135
142 template <typename T>
143 T parameter(const QString& key, const T& defaultValue) const
144 {
145 QVariant var = parameter(key);
146 return (
147 (var.isValid()) ? var.value<T>()
148 : defaultValue
149 );
150 }
151
153 void addParameter(const QString& key, const QVariant& value);
154
156 void removeParameters(const QString& key);
157
159 void clearParameters();
160
162 void setParameters(const QHash<QString, QVariant>& params);
163
164protected:
165
167 Category m_category = ReproducibleFilter;
168 Flags m_flags;
170 int m_version = 0;
173 QHash<QString, QVariant> m_params;
174};
175
176} // namespace Digikam
177
178Q_DECLARE_METATYPE(Digikam::FilterAction)
179Q_DECLARE_OPERATORS_FOR_FLAGS(Digikam::FilterAction::Flags)
Definition filteraction.h:33
T parameter(const QString &key) const
Definition filteraction.h:131
Flag
Definition filteraction.h:66
T parameter(const QString &key, const T &defaultValue) const
Definition filteraction.h:143
Flags m_flags
Definition filteraction.h:168
QString m_description
Definition filteraction.h:171
QString m_identifier
Definition filteraction.h:169
QString m_displayableName
Definition filteraction.h:172
QHash< QString, QVariant > m_params
Definition filteraction.h:173
Category
Definition filteraction.h:37
qulonglong value
Definition itemviewutilities.cpp:585
#define T
Definition datefolderview.cpp:34
bool operator==(const SearchTextSettings &a, const SearchTextSettings &b)
Definition searchtextbar.cpp:40