digiKam
Loading...
Searching...
No Matches
metadataoption.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 metadata 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 <QString>
20
21// Local includes
22
23#include "option.h"
24#include "ruledialog.h"
25#include "exiftoolparser.h"
26
27class QLineEdit;
28
29namespace Digikam
30{
31
32class MetadataPanel;
33
35{
36 Q_OBJECT
37
38public:
39
40 explicit MetadataOptionDialog(Rule* const parent);
41 ~MetadataOptionDialog() override = default;
42
43public:
44
46 QLineEdit* separatorLineEdit = nullptr;
47
48private:
49
50 // Disable
51 explicit MetadataOptionDialog(QWidget*) = delete;
53 MetadataOptionDialog& operator=(const MetadataOptionDialog&) = delete;
54};
55
56// --------------------------------------------------------
57
58class MetadataOption : public Option
59{
60 Q_OBJECT
61
62public:
63
65 ~MetadataOption() override;
66
67protected:
68
69 QString parseOperation(ParseSettings& settings,
70 const QRegularExpressionMatch& match) override;
71
72private Q_SLOTS:
73
74 void slotTokenTriggered(const QString& token) override;
75
76private:
77
78 QString parseMetadata(const QString& token, ParseSettings& settings);
79
80private:
81
82 static QHash<QUrl, ExifToolParser::ExifToolData> m_exifToolMetadataCache;
83 static QHash<QUrl, MetaEngine::MetaDataMap> m_exifMetadataCache;
84 static QHash<QUrl, MetaEngine::MetaDataMap> m_iptcMetadataCache;
85 static QHash<QUrl, MetaEngine::MetaDataMap> m_xmpMetadataCache;
86
87private:
88
89 // Disable
90 explicit MetadataOption(QObject*) = delete;
91 MetadataOption(const MetadataOption&) = delete;
92 MetadataOption& operator=(const MetadataOption&) = delete;
93};
94
95} // namespace Digikam
Definition metadataoption.h:35
MetadataPanel * metadataPanel
Definition metadataoption.h:45
QLineEdit * separatorLineEdit
Definition metadataoption.h:46
~MetadataOptionDialog() override=default
Definition metadataoption.h:59
QString parseOperation(ParseSettings &settings, const QRegularExpressionMatch &match) override
Definition metadataoption.cpp:149
MetadataOption()
Definition metadataoption.cpp:97
~MetadataOption() override
Definition metadataoption.cpp:113
Definition metadatapanel.h:35
Definition option.h:25
Definition parsesettings.h:33
Definition ruledialog.h:28
Definition rule.h:32
Definition datefolderview.cpp:34