digiKam
Loading...
Searching...
No Matches
tagmodificationhelper.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 : 2000-12-05
7 * Description : helper class used to modify tag albums in views
8 *
9 * SPDX-FileCopyrightText: 2009-2010 by Johannes Wienke <languitar at semipol dot de>
10 * SPDX-FileCopyrightText: 2010-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// Qt includes
19
20#include <QObject>
21#include <QString>
22#include <QList>
23
24// Local includes
25
26#include "album.h"
27
28class QAction;
29
30namespace Digikam
31{
32
42class TagModificationHelper: public QObject
43{
44 Q_OBJECT
45
46public:
47
54 explicit TagModificationHelper(QObject* const parent, QWidget* const dialogParent);
55
59 ~TagModificationHelper() override;
60
66 TAlbum* boundTag(QObject* action) const;
67
68public Q_SLOTS:
69
83 TAlbum* slotTagNew(TAlbum* parent, const QString& title = QString(),
84 const QString& iconName = QString());
85
94
100 void slotTagEdit(TAlbum* tag);
101
105 void slotTagEdit();
106
112 void slotTagDelete(TAlbum* tag);
113
117 void slotTagDelete();
118
124 void slotMultipleTagDel(const QList<TAlbum*>& tags);
125
129 void slotMultipleTagDel();
130
137 void slotFaceTagDelete(TAlbum* tag);
138
142 void slotFaceTagDelete();
143
150 void slotMultipleFaceTagDel(const QList<TAlbum*>& tags);
151
156
162 void slotTagToFaceTag(TAlbum* tag);
163
167 void slotTagToFaceTag();
168
174 void slotMultipleTagsToFaceTags(const QList<TAlbum*>& tags);
175
180
181public:
182
189 void bindTag(QAction* action, TAlbum* parent) const;
190
198 void bindMultipleTags(QAction* action, const QList<TAlbum*>& tags);
199
204 QList< TAlbum* > boundMultipleTags(QObject* sender);
205
206Q_SIGNALS:
207
208 void tagCreated(TAlbum* tag);
209 void tagEdited(TAlbum* tag);
211
212private:
213
218 QList<TAlbum*> getFaceTags(TAlbum* rootTags = nullptr);
219
224 QSet<TAlbum*> getFaceTags(const QList<TAlbum*>& tags);
225
226private:
227
228 class Private;
229 Private* const d = nullptr;
230};
231
232} // namespace Digikam
Definition album.h:421
Definition tagmodificationhelper.h:43
void slotFaceTagDelete()
Definition tagmodificationhelper.cpp:454
void slotTagToFaceTag()
Definition tagmodificationhelper.cpp:714
void slotTagEdit()
Definition tagmodificationhelper.cpp:226
void slotMultipleTagDel()
Definition tagmodificationhelper.cpp:438
~TagModificationHelper() override
Definition tagmodificationhelper.cpp:70
void slotMultipleTagsToFaceTags()
Definition tagmodificationhelper.cpp:727
void tagCreated(TAlbum *tag)
TAlbum * slotTagNew()
Definition tagmodificationhelper.cpp:163
void slotMultipleFaceTagDel()
Definition tagmodificationhelper.cpp:687
void bindMultipleTags(QAction *action, const QList< TAlbum * > &tags)
Definition tagmodificationhelper.cpp:92
QList< TAlbum * > boundMultipleTags(QObject *sender)
Definition tagmodificationhelper.cpp:97
TAlbum * boundTag(QObject *action) const
Definition tagmodificationhelper.cpp:80
void aboutToDeleteTag(TAlbum *tag)
void bindTag(QAction *action, TAlbum *parent) const
Definition tagmodificationhelper.cpp:75
void slotTagDelete()
Definition tagmodificationhelper.cpp:312
Definition datefolderview.cpp:34