digiKam
Loading...
Searching...
No Matches
itemdescedittab_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 : 2003-03-09
7 * Description : Captions, Tags, and Rating properties editor - private container
8 *
9 * SPDX-FileCopyrightText: 2003-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2003-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 * SPDX-FileCopyrightText: 2009-2011 by Andi Clemens <andi dot clemens at gmail dot com>
13 * SPDX-FileCopyrightText: 2009-2011 by Johannes Wienke <languitar at semipol dot de>
14 * SPDX-FileCopyrightText: 2015 by Veaceslav Munteanu <veaceslav dot munteanu90 at gmail dot com>
15 *
16 * SPDX-License-Identifier: GPL-2.0-or-later
17 *
18 * ============================================================ */
19
20#pragma once
21
22#include "itemdescedittab.h"
23
24// Qt includes
25
26#include <QStyle>
27#include <QGridLayout>
28#include <QScrollArea>
29#include <QTimer>
30#include <QToolButton>
31#include <QApplication>
32#include <QPushButton>
33#include <QMenu>
34#include <QIcon>
35#include <QCheckBox>
36#include <QMessageBox>
37#include <QPointer>
38
39// KDE includes
40
41#include <kconfiggroup.h>
42#include <klocalizedstring.h>
43
44// Local includes
45
46#include "digikam_debug.h"
47#include "addtagslineedit.h"
48#include "applicationsettings.h"
50#include "captionedit.h"
51#include "collectionscanner.h"
52#include "coredbtransaction.h"
54#include "ddatetimeedit.h"
55#include "digikamapp.h"
56#include "fileactionmngr.h"
57#include "ratingwidget.h"
58#include "scancontroller.h"
59#include "tagcheckview.h"
60#include "templateselector.h"
61#include "templateviewer.h"
62#include "itemattributeswatch.h"
63#include "statusprogressbar.h"
65#include "template.h"
66#include "iteminfolist.h"
67#include "iteminfo.h"
68#include "colorlabelwidget.h"
69#include "picklabelwidget.h"
70#include "fileactionprogress.h"
71#include "tagsmanager.h"
72#include "tagtreeview.h"
73#include "searchtextbardb.h"
74#include "disjointmetadata.h"
75#include "altlangstredit.h"
76#include "albummodel.h"
77#include "metadatahub.h"
78
79namespace Digikam
80{
81
82class Q_DECL_HIDDEN ItemDescEditTab::Private
83{
84
85public:
86
87 explicit Private(ItemDescEditTab* const tab);
88
89public:
90
91 bool modified = false;
92 bool ignoreItemAttributesWatch = false;
93
94 QToolButton* revertBtn = nullptr;
95
96 QMenu* moreMenu = nullptr;
97
98 QPushButton* applyBtn = nullptr;
99 QPushButton* moreButton = nullptr;
100 QPushButton* applyToAllVersionsButton = nullptr;
101
102 QWidget* lastSelectedWidget = nullptr;
103
104 AltLangStrEdit* titleEdit = nullptr;
105
106 CaptionEdit* captionsEdit = nullptr;
107
108 DDateTimeEdit* dateTimeEdit = nullptr;
109
110 QTabWidget* tabWidget = nullptr;
111
113
114 TemplateSelector* templateSelector = nullptr;
115 TemplateViewer* templateViewer = nullptr;
116
117 RatingWidget* ratingWidget = nullptr;
118 ColorLabelSelector* colorLabelSelector = nullptr;
119 PickLabelSelector* pickLabelSelector = nullptr;
120
121 DisjointMetadata* hub = nullptr;
122
123 QTimer* metadataChangeTimer = nullptr;
125
126 int spacing = 0;
127
128 // ---
129
130 bool togglingTagsSearchSettings = false;
131 bool ignoreTagChanges = false;
132 QToolButton* recentTagsBtn = nullptr;
133 QToolButton* assignedTagsBtn = nullptr;
134 QPushButton* openTagMngr = nullptr;
135 SearchTextBarDb* tagsSearchBar = nullptr;
136 AddTagsLineEdit* newTagEdit = nullptr;
137 TagCheckView* tagCheckView = nullptr;
138 TagModel* tagModel = nullptr;
139
140public:
141
142 void setupConnections();
143 void setupEventFilters();
144 void initProgressIndicator();
145
146 void reset();
147 void resetMetadataChangeInfo();
148
149 void setInfos(const ItemInfoList& infos);
150 void setFocusToLastSelectedWidget();
151 void setMetadataWidgetStatus(int status, QWidget* const widget);
152 void metadataChange(qlonglong imageId);
153 bool singleSelection() const;
154
155private:
156
157 ItemDescEditTab* const q = nullptr;
158};
159
160} // namespace Digikam
Definition addtagslineedit.h:36
Definition altlangstredit.h:34
Definition captionedit.h:35
Definition colorlabelwidget.h:91
Definition ddatetimeedit.h:36
Definition disjointmetadata.h:38
Definition itemdescedittab_p.h:83
ItemInfoList currInfos
Definition itemdescedittab_p.h:112
QList< int > metadataChangeIds
Definition itemdescedittab_p.h:124
Definition itemdescedittab.h:45
Definition iteminfolist.h:37
Definition picklabelwidget.h:90
Definition ratingwidget.h:36
Definition searchtextbardb.h:35
Definition tagcheckview.h:34
Definition albummodel.h:57
Definition templateselector.h:28
Definition templateviewer.h:32
Definition datefolderview.cpp:34