digiKam
Loading...
Searching...
No Matches
fileactionmngr.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-05
7 * Description : file action manager
8 *
9 * SPDX-FileCopyrightText: 2009-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "iteminfo.h"
21#include "metaengine_rotation.h"
22#include "digikam_export.h"
23
24namespace Digikam
25{
26
27class MetadataHub;
28class MetadataHubOnTheRoad;
29class DisjointMetadata;
30
31class DIGIKAM_GUI_EXPORT FileActionMngr : public QObject
32{
33 Q_OBJECT
34
35public:
36
38 {
41 SplitGroup
42 };
43
44public:
45
46 static FileActionMngr* instance();
47
48 bool requestShutDown();
49 void shutDown();
50 bool isActive();
51
52Q_SIGNALS:
53
54 void signalImageChangeFailed(const QString& message, const QStringList& fileNames);
55
56public Q_SLOTS:
57
58 void assignTag(const ItemInfo& info, int tagID);
59 void assignTag(const QList<ItemInfo>& infos, int tagID);
60 void assignTags(const ItemInfo& info, const QList<int>& tagIDs);
61 void assignTags(const QList<ItemInfo>& infos, const QList<int>& tagIDs);
62 void assignTags(const QList<qlonglong>& imageIds, const QList<int>& tagIDs);
63
64 void removeTag(const ItemInfo& info, int tagID);
65 void removeTag(const QList<ItemInfo>& infos, int tagID);
66 void removeTags(const ItemInfo& info, const QList<int>& tagIDs);
67 void removeTags(const QList<ItemInfo>& infos, const QList<int>& tagIDs);
68
69 void assignPickLabel(const ItemInfo& info, int pickId);
70 void assignPickLabel(const QList<ItemInfo>& infos, int pickId);
71
72 void assignColorLabel(const ItemInfo& info, int colorId);
73 void assignColorLabel(const QList<ItemInfo>& infos, int colorId);
74
75 void assignRating(const ItemInfo& info, int rating);
76 void assignRating(const QList<ItemInfo>& infos, int rating);
77
78 void addToGroup(const ItemInfo& pick, const QList<ItemInfo>& infos);
79 void removeFromGroup(const ItemInfo& info);
80 void removeFromGroup(const QList<ItemInfo>& infos);
81 void ungroup(const ItemInfo& info);
82 void ungroup(const QList<ItemInfo>& infos);
83
84 void setExifOrientation(const QList<ItemInfo>& infos, int orientation);
85/*
86 void applyMetadata(const QList<ItemInfo>& infos, const MetadataHub& hub);
87*/
88 void applyMetadata(const QList<ItemInfo>& infos, const DisjointMetadata& hub);
89
90 // ownership of the hub is passed, hub must be created without QObject parent
91 void applyMetadata(const QList<ItemInfo>& infos, DisjointMetadata* hub);
92
96 void transform(const QList<ItemInfo>& infos, MetaEngineRotation::TransformationAction action);
97
98 void copyAttributes(const ItemInfo& source, const QStringList& derivedPaths);
99 void copyAttributes(const ItemInfo& source, const QString& derivedPath);
100
101public:
102
103 // Declared public due to use by FileActionMngrWorker, FileActionMngrDatabaseWorker, and FileActionMngrFileWorker
104 class Private;
105
106private:
107
108 // Disable
110 explicit FileActionMngr(QObject*);
111 ~FileActionMngr() override;
112
113 Private* const d = nullptr;
114
115 friend class FileActionMngrCreator;
116};
117
118} // namespace Digikam
Definition disjointmetadata.h:38
Definition fileactionmngr_p.h:68
Definition fileactionmngr.h:32
void signalImageChangeFailed(const QString &message, const QStringList &fileNames)
GroupAction
Definition fileactionmngr.h:38
@ AddToGroup
Definition fileactionmngr.h:39
@ RemoveFromGroup
Definition fileactionmngr.h:40
Definition iteminfo.h:68
TransformationAction
Definition metaengine_rotation.h:44
Definition datefolderview.cpp:34