digiKam
Loading...
Searching...
No Matches
itemdescedittab.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
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 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QScrollArea>
22#include <QPixmap>
23#include <QEvent>
24
25// Local includes
26
27#include "dlayoutbox.h"
28#include "digikam_export.h"
29#include "iteminfolist.h"
30#include "albummanager.h"
31#include "searchtextbar.h"
32#include "disjointmetadata.h"
33
34class KConfigGroup;
35
36namespace Digikam
37{
38
39class ItemInfo;
40class TaggingAction;
41class DisjointMetadata;
42class AddTagsLineEdit;
43
44class ItemDescEditTab : public DVBox
45{
46 Q_OBJECT
47
48public:
49
56
57public:
58
59 explicit ItemDescEditTab(QWidget* const parent);
60 ~ItemDescEditTab() override;
61
62 void setItem(const ItemInfo& info = ItemInfo());
63 void setItems(const ItemInfoList& infos);
64
65 void readSettings(KConfigGroup& group);
66 void writeSettings(KConfigGroup& group);
67
68 bool isModified() const;
69
70 void setCurrentTab(int);
71 int currentTab() const;
72
73Q_SIGNALS:
74
75 void signalProgressMessageChanged(const QString& actionDescription);
76 void signalProgressValueChanged(float percent);
77 void signalRightSideBarBusy(bool busy);
79
82
83 void signalAskToApplyChanges(const QList<ItemInfo>& infos, DisjointMetadata* hub);
84
85protected:
86
87 bool eventFilter(QObject* o, QEvent* e) override;
88
89private Q_SLOTS:
90
91 void slotApplyAllChanges();
92 void slotApplyChangesToAllVersions();
93 void slotRevertAllChanges();
94 void slotChangingItems();
95 void slotModified();
96 void slotReloadForMetadataChange();
97
98 void slotImagesChanged(int albumId);
99
100 void slotMoreMenu();
101 void slotReadFromFileMetadataToDatabase();
102 void slotWriteToFileMetadataFromDatabase();
103
104 void slotAskToApplyChanges(const QList<ItemInfo>& infos, DisjointMetadata* hub);
105
108
109public:
110
111 void assignColorLabel(int colorId);
112 void assignPickLabel(int pickId);
113 void assignRating(int rating);
116
117 void replaceColorLabel(int colorId);
118 void replacePickLabel(int pickId);
119 void replaceRating(int rating);
120
121private:
122
123 void initDescriptionView();
124 void updateComments();
125 void updatePickLabel();
126 void updateColorLabel();
127 void updateRating();
128 void updateDate();
129
130 void resetTitleEditPlaceholderText();
131 void resetCaptionEditPlaceholderText();
132
133private Q_SLOTS:
134
135 void slotCommentChanged();
136 void slotTitleChanged();
137 void slotDateTimeChanged(const QDateTime& dateTime);
138 void slotPickLabelChanged(int pickId);
139 void slotColorLabelChanged(int colorId);
140 void slotRatingChanged(int rating);
141
142 void slotImageRatingChanged(qlonglong imageId);
143 void slotImageDateChanged(qlonglong imageId);
144 void slotImageCaptionChanged(qlonglong imageId);
145
147
150
151public:
152
153 void populateTags();
154 void setFocusToTagsView();
157
159
160Q_SIGNALS:
161
163
164private:
165
166 void initTagsView();
167 void setTagState(TAlbum* const tag, DisjointMetadataDataFields::Status status);
168 void updateTagsView();
169 void updateRecentTags();
170
171private Q_SLOTS:
172
173 void slotTagsSearchChanged(const SearchTextSettings& settings);
174 void slotTagStateChanged(Album* album, Qt::CheckState checkState);
175 void slotTaggingActionActivated(const TaggingAction&);
176 void slotImageTagsChanged(qlonglong imageId);
177 void slotOpenTagsManager();
178
179 void slotRecentTagsMenuActivated(int);
180 void slotAssignedTagsToggled(bool);
181 void slotUnifyPartiallyTags();
182
184
187
188private:
189
190 void initInformationView();
191 void updateTemplate();
192
193private Q_SLOTS:
194
195 void slotTemplateSelected();
196
198
201
202private:
203
204 class Private;
205 Private* const d = nullptr;
206
207 friend class Private;
208
210};
211
212} // namespace Digikam
Definition addtagslineedit.h:36
Abstract base class for all album types.
Definition album.h:57
Definition dlayoutbox.h:65
Status
Definition disjointmetadatadatafields.h:49
Definition disjointmetadata.h:38
Definition itemdescedittab_p.h:83
Definition itemdescedittab.h:45
void activateAssignedTagsButton()
Definition itemdescedittab_tagsview.cpp:120
AddTagsLineEdit * getNewTagEdit() const
Definition itemdescedittab_tagsview.cpp:406
void setItem(const ItemInfo &info=ItemInfo())
Definition itemdescedittab.cpp:107
void replacePickLabel(int pickId)
Definition itemdescedittab_descview.cpp:191
void setFocusToNewTagEdit()
Definition itemdescedittab_tagsview.cpp:112
DescEditTab
Definition itemdescedittab.h:51
@ INFOS
Definition itemdescedittab.h:54
@ TAGS
Definition itemdescedittab.h:53
@ DESCRIPTIONS
Definition itemdescedittab.h:52
void readSettings(KConfigGroup &group)
Definition itemdescedittab.cpp:79
void populateTags()
Tags view methods (itemdescedittab_tagsview.cpp)
Definition itemdescedittab_tagsview.cpp:136
void assignRating(int rating)
Definition itemdescedittab_descview.cpp:180
void signalProgressValueChanged(float percent)
void replaceColorLabel(int colorId)
Definition itemdescedittab_descview.cpp:185
void assignPickLabel(int pickId)
Definition itemdescedittab_descview.cpp:175
void setItems(const ItemInfoList &infos)
Definition itemdescedittab.cpp:120
void assignColorLabel(int colorId)
Description view methods (itemdescedittab_descview.cpp)
Definition itemdescedittab_descview.cpp:170
void setFocusToCommentsEdit()
Definition itemdescedittab_descview.cpp:110
void signalAskToApplyChanges(const QList< ItemInfo > &infos, DisjointMetadata *hub)
void setCurrentTab(int)
Definition itemdescedittab.cpp:69
bool eventFilter(QObject *o, QEvent *e) override
Definition itemdescedittab.cpp:126
void replaceRating(int rating)
Definition itemdescedittab_descview.cpp:197
int currentTab() const
Definition itemdescedittab.cpp:74
void setFocusToTitlesEdit()
Definition itemdescedittab_descview.cpp:104
~ItemDescEditTab() override
Definition itemdescedittab.cpp:63
void writeSettings(KConfigGroup &group)
Definition itemdescedittab.cpp:95
void signalRightSideBarBusy(bool busy)
void signalProgressMessageChanged(const QString &actionDescription)
bool isModified() const
Definition itemdescedittab.cpp:196
void signalTagFilterMatch(bool)
void setFocusToTagsView()
Definition itemdescedittab_tagsview.cpp:105
Definition iteminfolist.h:37
Definition iteminfo.h:68
Definition searchtextbar.h:33
Definition album.h:421
Definition taggingaction.h:26
Definition datefolderview.cpp:34