digiKam
Loading...
Searching...
No Matches
assignnamewidget_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 : 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#include "assignnamewidget.h"
20
21// Qt includes
22
23#include <QGridLayout>
24#include <QKeyEvent>
25#include <QToolButton>
26#include <QApplication>
27#include <QIcon>
28
29// KDE includes
30
31#include <klocalizedstring.h>
32
33// Local includes
34
35#include "dexpanderbox.h"
36#include "digikam_debug.h"
37#include "addtagscombobox.h"
38#include "addtagslineedit.h"
39#include "album.h"
40#include "albummanager.h"
41#include "albumtreeview.h"
42#include "facetagsiface.h"
43#include "facetags.h"
44#include "dimg.h"
45#include "iteminfo.h"
46#include "thememanager.h"
47#include "applicationsettings.h"
48
49namespace Digikam
50{
51
52class Q_DECL_HIDDEN AssignNameWidget::Private
53{
54public:
55
56 explicit Private(AssignNameWidget* const qq);
57
58 bool isValid() const;
59
60 void updateModes();
61 void updateContents();
62
69 void updateRejectButton();
70
71 void updateIgnoreButton();
72
73private:
74
75 void clearWidgets();
76 void checkWidgets();
77 void updateLayout();
78 void updateVisualStyle();
79
80 QToolButton* createToolButton(const QIcon& icon,
81 const QString& text,
82 const QString& tip = QString()) const;
83
84 QWidget* addTagsWidget() const;
85
86 template <class T> void setupAddTagsWidget(T* const widget);
87 template <class T> void setAddTagsWidgetContents(T* const widget);
88
89 void layoutAddTagsWidget(bool exceedBounds, int minimumContentsLength);
90 void setSizePolicies(QSizePolicy::Policy h, QSizePolicy::Policy v);
91 void setToolButtonStyles(Qt::ToolButtonStyle style);
92 QString styleSheetFontDescriptor(const QFont& font) const;
93
94public:
95
99
100 Mode mode = InvalidMode;
101 LayoutMode layoutMode = InvalidLayout;
102 VisualStyle visualStyle = InvalidVisualStyle;
103 TagEntryWidgetMode widgetMode = InvalidTagEntryWidgetMode;
104
105 AddTagsComboBox* comboBox = nullptr;
106 AddTagsLineEdit* lineEdit = nullptr;
107 QToolButton* confirmButton = nullptr;
108 QToolButton* rejectButton = nullptr;
109 QToolButton* ignoreButton = nullptr;
110 DClickLabel* clickLabel = nullptr;
111
112 bool modelsGiven = false;
113 TagModel* tagModel = nullptr;
114 CheckableAlbumFilterModel* tagFilterModel = nullptr;
115 TagPropertiesFilterModel* tagFilteredModel = nullptr;
117
118 QGridLayout* layout = nullptr;
119
120 AssignNameWidget* const q = nullptr;
121};
122
123} // namespace Digikam
Definition addtagscombobox.h:39
Definition addtagslineedit.h:36
Definition albumpointer.h:38
Definition assignnamewidget_p.h:53
AlbumPointer< TAlbum > currentTag
Definition assignnamewidget_p.h:98
QVariant faceIdentifier
Definition assignnamewidget_p.h:97
ItemInfo info
Definition assignnamewidget_p.h:96
AlbumPointer< TAlbum > parentTag
Definition assignnamewidget_p.h:116
Definition assignnamewidget.h:38
Mode
Definition assignnamewidget.h:48
LayoutMode
Definition assignnamewidget.h:66
VisualStyle
Definition assignnamewidget.h:75
TagEntryWidgetMode
Definition assignnamewidget.h:58
Definition albumfiltermodel.h:284
Definition dexpanderbox.h:95
Definition iteminfo.h:68
Definition albummodel.h:57
Definition albumfiltermodel.h:366
#define T
Definition datefolderview.cpp:34