digiKam
Loading...
Searching...
No Matches
exiftoolparser_p.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 : 2020-11-28
7 * Description : ExifTool process stream parser - private container.
8 *
9 * SPDX-FileCopyrightText: 2020-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17#include "exiftoolparser.h"
18
19// Qt includes
20
21#include <QDir>
22#include <QMutex>
23#include <QThread>
24#include <QLocale>
25#include <QVariant>
26#include <QFileInfo>
27#include <QEventLoop>
28#include <QJsonArray>
29#include <QStringList>
30#include <QDomElement>
31#include <QJsonObject>
32#include <QApplication>
33#include <QDomDocument>
34#include <QJsonDocument>
35#include <QMimeDatabase>
36#include <QTemporaryFile>
37
38// KDE includes
39
40#include <klocalizedstring.h>
41
42// Local includes
43
44#include "digikam_config.h"
45#include "digikam_debug.h"
46#include "dmetadata.h"
47#include "exiftoolthread.h"
48#include "metaenginesettings.h"
49
50namespace Digikam
51{
52
53class Q_DECL_HIDDEN ExifToolParser::Private
54{
55public:
56
57 explicit Private(ExifToolParser* const q);
58 ~Private();
59
60 void prepareProcess();
61 bool startProcess(const QByteArrayList& cmdArgs, ExifToolProcess::Action cmdAction);
62 void prepareFileAndSidecar(QByteArrayList& cmdArgs, const QFileInfo& fi);
63 QByteArray filePathEncoding(const QFileInfo& fi) const;
64
65 void jumpToResultCommand(const ExifToolProcess::Result& result, int cmdId);
66
70 QString actionString(int cmdAction) const;
71
72public:
73
74 ExifToolParser* pp = nullptr;
75 ExifToolProcess* proc = nullptr;
76 QString currentPath;
77 QString errorString;
79 QTemporaryFile argsFile;
80
81 QMutex mutex;
82
83 bool async = false;
84 QList<int> asyncRunning;
85};
86
87} // namespace Digikam
Definition exiftoolparser_p.h:54
QList< int > asyncRunning
Definition exiftoolparser_p.h:84
QMutex mutex
Definition exiftoolparser_p.h:81
QTemporaryFile argsFile
Temporary file to store Exiftool arg config file.
Definition exiftoolparser_p.h:79
QString errorString
Current error string from the last started ExifTool process.
Definition exiftoolparser_p.h:77
ExifToolData exifToolData
Current ExifTool data (input or output depending of the called method.
Definition exiftoolparser_p.h:78
QString currentPath
Current file path processed by ExifTool.
Definition exiftoolparser_p.h:76
Definition exiftoolparser.h:37
QHash< QString, QVariantList > ExifToolData
Definition exiftoolparser.h:87
Definition exiftoolprocess.h:112
Definition exiftoolprocess.h:35
Action
Definition exiftoolprocess.h:44
Definition datefolderview.cpp:34