digiKam
Loading...
Searching...
No Matches
assignnamewidget.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-09-12
7 * Description : Widget for assignment and confirmation of names for faces
8 *
9 * SPDX-FileCopyrightText: 2010 by Aditya Bhatt <adityabhatt1991 at gmail dot com>
10 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QFrame>
22#include <QVariant>
23
24namespace Digikam
25{
26
27class AddTagsComboBox;
28class AddTagsLineEdit;
29class CheckableAlbumFilterModel;
30class FaceTagsIface;
31class ItemInfo;
32class TAlbum;
33class TaggingAction;
34class TagModel;
35class TagPropertiesFilterModel;
36
37class AssignNameWidget : public QFrame
38{
39 Q_OBJECT
40 Q_PROPERTY(Mode mode READ mode WRITE setMode)
44
45public:
46
55 Q_ENUM(Mode)
56
63 Q_ENUM(TagEntryWidgetMode)
64
72 Q_ENUM(LayoutMode)
73
81 Q_ENUM(VisualStyle)
82
83public:
84
88 explicit AssignNameWidget(QWidget* const parent = nullptr);
89 ~AssignNameWidget() override;
90
94 void setAlbumModels(TagModel* const model,
95 TagPropertiesFilterModel* const filteredModel,
96 CheckableAlbumFilterModel* const filterModel);
97 void setDefaultModel();
98
99 void setMode(Mode mode);
100 Mode mode() const;
101
104
106 LayoutMode layoutMode() const;
107
108 void setVisualStyle(VisualStyle style);
109 VisualStyle visualStyle() const;
110
111 ItemInfo info() const;
112 QVariant faceIdentifier() const;
113
115 AddTagsComboBox* comboBox() const;
116 AddTagsLineEdit* lineEdit() const;
117
118public Q_SLOTS:
119
123 void setUserData(const ItemInfo& info, const QVariant& faceIdentifier = QVariant());
124
128 void setCurrentTag(int tagId);
129 void setCurrentTag(TAlbum* album);
130 void setCurrentFace(const FaceTagsIface& face);
131
135 void setParentTag(TAlbum* album);
136
137Q_SIGNALS:
138
144 void assigned(const TaggingAction& action, const ItemInfo& info, const QVariant& faceIdentifier);
145
150 void rejected(const ItemInfo& info, const QVariant& faceIdentifier);
151
152 void ignored(const ItemInfo& info, const QVariant& faceIdentifier);
153
157 void ignoredClicked(const ItemInfo& info, const QVariant& faceIdentifier);
158
162 void labelClicked(const ItemInfo& info, const QVariant& faceIdentifier);
163
169 void selected(const TaggingAction& action, const ItemInfo& info, const QVariant& faceIdentifier);
170
171protected:
172
173 void keyPressEvent(QKeyEvent* e) override;
174 void showEvent(QShowEvent* e) override;
175
176protected Q_SLOTS:
177
178 void slotConfirm();
179 void slotReject();
180 void slotIgnore();
181 void slotActionActivated(const TaggingAction& action);
182 void slotActionSelected(const TaggingAction& action);
183 void slotIgnoredClicked();
184 void slotLabelClicked();
185
186private:
187
188 class Private;
189 Private* const d = nullptr;
190};
191
192} // namespace Digikam
Definition addtagscombobox.h:39
Definition addtagslineedit.h:36
Definition assignnamewidget_p.h:53
Definition assignnamewidget.h:38
void setCurrentFace(const FaceTagsIface &face)
Definition assignnamewidget.cpp:215
void slotIgnore()
Definition assignnamewidget.cpp:266
void labelClicked(const ItemInfo &info, const QVariant &faceIdentifier)
LayoutMode layoutMode
Definition assignnamewidget.h:42
void slotIgnoredClicked()
Definition assignnamewidget.cpp:286
void selected(const TaggingAction &action, const ItemInfo &info, const QVariant &faceIdentifier)
AddTagsLineEdit * lineEdit() const
Definition assignnamewidget.cpp:95
void slotConfirm()
Definition assignnamewidget.cpp:249
void assigned(const TaggingAction &action, const ItemInfo &info, const QVariant &faceIdentifier)
void setParentTag(TAlbum *album)
Definition assignnamewidget.cpp:76
void setUserData(const ItemInfo &info, const QVariant &faceIdentifier=QVariant())
Definition assignnamewidget.cpp:180
Mode
Definition assignnamewidget.h:48
@ InvalidMode
Definition assignnamewidget.h:49
@ ConfirmedEditMode
Definition assignnamewidget.h:52
@ IgnoredMode
Definition assignnamewidget.h:53
@ ConfirmedMode
Definition assignnamewidget.h:51
@ UnconfirmedEditMode
Definition assignnamewidget.h:50
void setMode(Mode mode)
Definition assignnamewidget.cpp:100
void slotActionSelected(const TaggingAction &action)
Definition assignnamewidget.cpp:276
void setCurrentTag(int tagId)
Definition assignnamewidget.cpp:227
void setVisualStyle(VisualStyle style)
Definition assignnamewidget.cpp:164
TagEntryWidgetMode tagEntryWidgetMode
Definition assignnamewidget.h:41
LayoutMode
Definition assignnamewidget.h:66
@ FullLine
Definition assignnamewidget.h:68
@ InvalidLayout
Definition assignnamewidget.h:67
@ Compact
Definition assignnamewidget.h:70
@ TwoLines
Definition assignnamewidget.h:69
Mode mode
Definition assignnamewidget.h:40
void ignoredClicked(const ItemInfo &info, const QVariant &faceIdentifier)
void setDefaultModel()
Definition assignnamewidget.cpp:35
void slotActionActivated(const TaggingAction &action)
Definition assignnamewidget.cpp:271
void slotReject()
Definition assignnamewidget.cpp:261
AddTagsComboBox * comboBox() const
The combo box or line edit in use, if any.
Definition assignnamewidget.cpp:90
void setAlbumModels(TagModel *const model, TagPropertiesFilterModel *const filteredModel, CheckableAlbumFilterModel *const filterModel)
Definition assignnamewidget.cpp:40
QVariant faceIdentifier() const
Definition assignnamewidget.cpp:210
void showEvent(QShowEvent *e) override
Definition assignnamewidget.cpp:310
void ignored(const ItemInfo &info, const QVariant &faceIdentifier)
void slotLabelClicked()
Definition assignnamewidget.cpp:291
void keyPressEvent(QKeyEvent *e) override
Definition assignnamewidget.cpp:296
void rejected(const ItemInfo &info, const QVariant &faceIdentifier)
VisualStyle
Definition assignnamewidget.h:75
@ TranslucentThemedFrameless
Definition assignnamewidget.h:79
@ InvalidVisualStyle
Definition assignnamewidget.h:76
@ StyledFrame
Definition assignnamewidget.h:77
@ TranslucentDarkRound
Definition assignnamewidget.h:78
void setTagEntryWidgetMode(TagEntryWidgetMode mode)
Definition assignnamewidget.cpp:130
TagEntryWidgetMode
Definition assignnamewidget.h:58
@ AddTagsLineEditMode
Definition assignnamewidget.h:61
@ InvalidTagEntryWidgetMode
Definition assignnamewidget.h:59
@ AddTagsComboBoxMode
Definition assignnamewidget.h:60
~AssignNameWidget() override
Definition assignnamewidget.cpp:30
void setLayoutMode(LayoutMode mode)
Definition assignnamewidget.cpp:147
VisualStyle visualStyle
Definition assignnamewidget.h:43
ItemInfo info() const
Definition assignnamewidget.cpp:205
Definition albumfiltermodel.h:284
Definition facetagsiface.h:34
Definition iteminfo.h:68
Definition album.h:421
Definition albummodel.h:57
Definition albumfiltermodel.h:366
Definition taggingaction.h:26
Definition datefolderview.cpp:34