digiKam
Loading...
Searching...
No Matches
imagewindow.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 : 2004-02-12
7 * Description : digiKam image editor GUI
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2004-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 <QCloseEvent>
21#include <QString>
22#include <QUrl>
23
24// Local includes
25
26#include "editorwindow.h"
27#include "iteminfo.h"
28
29class QDragMoveEvent;
30class QDropEvent;
31
32namespace Digikam
33{
34
35class CollectionImageChangeset;
36
38{
39 Q_OBJECT
40
41public:
42
43 ~ImageWindow() override;
44
45 static ImageWindow* imageWindow();
46 static bool imageWindowCreated();
47
48 bool queryClose() override;
49 void toggleTag(int tagID);
50
51public:
52
53 DInfoInterface* infoIface(DPluginAction* const ac) override;
54
55 VersionManager* versionManager() const override;
56
57public Q_SLOTS:
58
59 void loadItemInfos(const ItemInfoList& imageInfoList,
60 const ItemInfo& imageInfoCurrent,
61 const QString& caption);
62 void openImage(const ItemInfo& info);
63
64 void slotAssignPickLabel(int pickId);
65 void slotAssignColorLabel(int colorId);
66 void slotAssignRating(int rating);
67
68Q_SIGNALS:
69
70 void signalURLChanged(const QUrl& url);
72
73protected:
74
75 void showEvent(QShowEvent* e) override;
76 void dropEvent(QDropEvent* e) override;
77 void closeEvent(QCloseEvent* e) override;
78 void dragMoveEvent(QDragMoveEvent* e) override;
79
80private:
81
82 // Disable
84 ImageWindow(QWidget*);
85
86 void loadIndex(const QModelIndex& index);
87
88 bool save() override;
89 bool saveAs() override;
90 bool saveNewVersion() override;
91 bool saveCurrentVersion() override;
92 bool saveNewVersionAs() override;
93 bool saveNewVersionInFormat(const QString& format) override;
94
95 QUrl saveDestinationUrl() override;
96 bool hasOriginalToRestore() override;
97 DImageHistory resolvedImageHistory(const DImageHistory& history) override;
98
99 void prepareImageToSave();
100 void saveFaceTagsToImage(const ItemInfo& info);
101
102 void saveIsComplete() override;
103 void saveAsIsComplete() override;
104 void saveVersionIsComplete() override;
105
106 void setViewToURL(const QUrl& url);
107 void deleteCurrentItem(bool ask, bool permanently);
108 void removeCurrent();
109
110 void assignPickLabel(const ItemInfo& info, int pickId);
111 void assignColorLabel(const ItemInfo& info, int colorId);
112 void assignRating(const ItemInfo& info, int rating);
113 void toggleTag(const ItemInfo& info, int tagID);
114
115 ThumbBarDock* thumbBar() const override;
116 Sidebar* rightSideBar() const override;
117
118Q_SIGNALS: // private signals
119
121
122private Q_SLOTS:
123
124 void slotLoadItemInfosStage2();
125 void slotThumbBarModelReady();
126
127 void slotForward() override;
128 void slotBackward() override;
129 void slotFirst() override;
130 void slotLast() override;
131 void slotFileWithDefaultApplication() override;
132
133 void slotToMainWindow();
134
135 void slotThumbBarImageSelected(const ItemInfo&);
136 void slotLoadCurrent();
137 void slotDeleteCurrentItem() override;
138 void slotDeleteCurrentItemPermanently();
139 void slotDeleteCurrentItemPermanentlyDirectly();
140 void slotTrashCurrentItemDirectly();
141
142 void slotChanged() override;
143 void slotUpdateItemInfo() override;
144 void slotFileOriginChanged(const QString&) override;
145
146 void slotRevert() override;
147 void slotOpenOriginal() override;
148
149 void slotAssignTag(int tagID);
150 void slotRemoveTag(int tagID);
151
152 void slotRatingChanged(const QUrl&, int);
153 void slotColorLabelChanged(const QUrl&, int);
154 void slotPickLabelChanged(const QUrl&, int);
155 void slotToggleTag(const QUrl&, int);
156
157 void slotFileMetadataChanged(const QUrl&);
158/*
159 void slotCollectionImageChange(const CollectionImageChangeset&);
160 void slotRowsAboutToBeRemoved(const QModelIndex& parent, int start, int end);
161*/
162 void slotDroppedOnThumbbar(const QList<ItemInfo>& infos);
163
164 void slotComponentsInfo() override;
165 void slotDBStat() override;
166 void slotOnlineVersionCheck() override;
167
168 void slotAddedDropedItems(QDropEvent*) override;
169 void slotOpenWith(QAction* action = nullptr) override;
170
171 void slotRightSideBarActivateTitles();
172 void slotRightSideBarActivateComments();
173 void slotRightSideBarActivateAssignedTags();
174
175// -- Internal setup methods implemented in imagewindow_config.cpp ----------------------------------------
176
177public Q_SLOTS:
178
179 void slotSetup() override;
180 void slotSetupICC() override;
181
182 void slotSetupChanged();
183
184// -- Internal setup methods implemented in imagewindow_setup.cpp ----------------------------------------
185
186private:
187
188 void setupActions() override;
189 void setupConnections() override;
190 void setupUserArea() override;
191
192 void addServicesMenu() override;
193
194private Q_SLOTS:
195
196 void slotContextMenu() override;
197
198// -- Import tools methods implemented in imagewindow_import.cpp -------------------------------------
199
200private Q_SLOTS:
201
202 void slotImportedImagefromScanner(const QUrl& url);
203
204// -- Internal private container --------------------------------------------------------------------
205
206private:
207
208 static ImageWindow* m_instance;
209
210 class Private;
211 Private* const d = nullptr;
212};
213
214} // namespace Digikam
Definition dimagehistory.h:39
Definition dinfointerface.h:48
Definition dpluginaction.h:30
Definition editorwindow.h:68
Definition imagewindow_p.h:166
Definition imagewindow.h:38
void slotAssignColorLabel(int colorId)
Definition imagewindow.cpp:451
DInfoInterface * infoIface(DPluginAction *const ac) override
Definition imagewindow.cpp:1350
void dropEvent(QDropEvent *e) override
Definition imagewindow.cpp:1092
void openImage(const ItemInfo &info)
Definition imagewindow.cpp:226
void toggleTag(int tagID)
Definition imagewindow.cpp:410
static ImageWindow * imageWindow()
Definition imagewindow.cpp:23
void signalSavingDialogProgress(float value)
bool queryClose() override
Definition imagewindow.cpp:163
void slotSetupChanged()
Definition imagewindow_config.cpp:30
void loadItemInfos(const ItemInfoList &imageInfoList, const ItemInfo &imageInfoCurrent, const QString &caption)
Definition imagewindow.cpp:178
void slotAssignPickLabel(int pickId)
Definition imagewindow.cpp:446
void showEvent(QShowEvent *e) override
Definition imagewindow.cpp:154
static bool imageWindowCreated()
Definition imagewindow.cpp:33
~ImageWindow() override
Definition imagewindow.cpp:107
void slotSetup() override
Definition imagewindow_config.cpp:20
void dragMoveEvent(QDragMoveEvent *e) override
Definition imagewindow.cpp:1072
void slotSetupICC() override
Definition imagewindow_config.cpp:25
void closeEvent(QCloseEvent *e) override
Definition imagewindow.cpp:116
void signalURLChanged(const QUrl &url)
void slotAssignRating(int rating)
Definition imagewindow.cpp:472
VersionManager * versionManager() const override
Definition imagewindow.cpp:804
Definition iteminfolist.h:37
Definition iteminfo.h:68
Definition sidebar.h:324
Definition thumbbardock.h:74
Definition versionmanager.h:36
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34