digiKam
Loading...
Searching...
No Matches
lighttablewindow.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 : 2007-03-05
7 * Description : digiKam light table GUI
8 *
9 * SPDX-FileCopyrightText: 2007-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QString>
20#include <QCloseEvent>
21#include <QUrl>
22
23// Local includes
24
25#include "dxmlguiwindow.h"
26#include "iteminfo.h"
27
28namespace Digikam
29{
30
32{
33 Q_OBJECT
34
35public:
36
37 ~LightTableWindow() override;
38
40 static bool lightTableWindowCreated();
41
42 void loadItemInfos(const ItemInfoList& list, const ItemInfo& imageInfoCurrent, bool addTo);
43 void setLeftRightItems(const ItemInfoList& list, bool addTo);
44 void refreshView();
45 bool isEmpty() const;
46
47 void toggleTag(int tagID);
48
49public:
50
51 DInfoInterface* infoIface(DPluginAction* const ac) override;
52
53Q_SIGNALS:
54
56
57public Q_SLOTS:
58
59 void slotFileChanged(const QString& filePath);
60 void slotAssignPickLabel(int pickId);
61 void slotAssignColorLabel(int colorId);
62 void slotAssignRating(int rating);
63
64protected:
65
66 void moveEvent(QMoveEvent* e) override;
67
68private:
69
70 void customizedFullScreenMode(bool set) override;
71 void showSideBars(bool visible) override;
72 void closeEvent(QCloseEvent* e) override;
73 void showEvent(QShowEvent* e) override;
74
75 void deleteItem(bool permanently);
76 void deleteItem(const ItemInfo& info, bool permanently);
77
78 // Disable
80 explicit LightTableWindow(QWidget*);
81
82private Q_SLOTS:
83
84 void slotBackward();
85 void slotForward();
86 void slotFirst();
87 void slotLast();
88
89 void slotSetItemLeft();
90 void slotSetItemRight();
91 void slotSetItemOnLeftPanel(const ItemInfo&);
92 void slotSetItemOnRightPanel(const ItemInfo&);
93 void slotLeftDroppedItems(const ItemInfoList&);
94 void slotRightDroppedItems(const ItemInfoList&);
95
96 void slotLeftPanelLeftButtonClicked();
97 void slotRightPanelLeftButtonClicked();
98
99 void slotLeftPreviewLoaded(bool);
100 void slotRightPreviewLoaded(bool);
101
102 void slotLeftPreviewSelected(bool);
103 void slotRightPreviewSelected(bool);
104
105 void slotLeftZoomFactorChanged(double);
106 void slotRightZoomFactorChanged(double);
107
108 void slotToggleOnSyncPreview(bool);
109 void slotToggleSyncPreview();
110 void slotToggleNavigateByPair();
111
112 void slotDeleteItem();
113 void slotDeleteItem(const ItemInfo&);
114
115 void slotDeleteFinalItem();
116 void slotDeleteFinalItem(const ItemInfo&);
117
118 void slotRemoveItem();
119 void slotRemoveItem(const ItemInfo&);
120
121 void slotItemSelected(const ItemInfo&);
122 void slotClearItemsList();
123
124 void slotThumbbarDroppedItems(const QList<ItemInfo>&);
125
126 void slotToggleColorManagedView();
127 void slotComponentsInfo() override;
128 void slotDBStat() override;
129 void slotOnlineVersionCheck() override;
130
131 void slotFileWithDefaultApplication();
132
133 void slotRefreshStatusBar();
134
135 void slotToggleLeftSideBar() override;
136 void slotToggleRightSideBar() override;
137 void slotPreviousLeftSideBarTab() override;
138 void slotNextLeftSideBarTab() override;
139 void slotPreviousRightSideBarTab() override;
140 void slotNextRightSideBarTab() override;
141
142 void slotRightSideBarActivateTitles();
143 void slotRightSideBarActivateComments();
144 void slotRightSideBarActivateAssignedTags();
145 void slotLeftSideBarActivateTitles();
146 void slotLeftSideBarActivateComments();
147 void slotLeftSideBarActivateAssignedTags();
148
149// --- Internal setup methods implemented in lighttablewindow_config.cpp
150
151public:
152
153 void applySettings();
154
155private:
156
157 void readSettings();
158 void writeSettings();
159
160public Q_SLOTS:
161
162 void slotSetup() override;
164
165 void slotThemeChanged();
167
168// --- Internal setup methods implemented in lighttablewindow_setup.cpp
169
170private:
171
172 void setupActions();
173 void setupConnections();
174 void setupUserArea();
175 void setupStatusBar();
176
177// --- Extra tool methods implemented in lighttablewindow_tools.cpp
178
179private Q_SLOTS:
180
181 void slotEditItem();
182 void slotEditItem(const ItemInfo&);
183
184 void slotLeftSlideShowManualFromCurrent();
185 void slotRightSlideShowManualFromCurrent();
186 void slotSlideShowLastItemUrl();
187
188// --- Import tools methods implemented in lighttablewindow_import.cpp
189
190private Q_SLOTS:
191
192 void slotImportedImagefromScanner(const QUrl& url);
193
194// --- Internal private container
195
196private:
197
198 class Private;
199 Private* const d = nullptr;
200
201 static LightTableWindow* m_instance;
202};
203
204} // namespace Digikam
Definition dinfointerface.h:48
Definition dpluginaction.h:30
Definition dxmlguiwindow.h:84
Definition iteminfolist.h:37
Definition iteminfo.h:68
Definition lighttablewindow_p.h:104
Definition lighttablewindow.h:32
bool isEmpty() const
Definition lighttablewindow.cpp:192
void slotThemeChanged()
Definition lighttablewindow_config.cpp:35
void slotApplicationSettingsChanged()
Definition lighttablewindow_config.cpp:41
static LightTableWindow * lightTableWindow()
Definition lighttablewindow.cpp:22
void refreshView()
Definition lighttablewindow.cpp:91
void moveEvent(QMoveEvent *e) override
Definition lighttablewindow.cpp:957
void slotSetup() override
Definition lighttablewindow_config.cpp:20
void setLeftRightItems(const ItemInfoList &list, bool addTo)
Definition lighttablewindow.cpp:409
void slotAssignPickLabel(int pickId)
Definition lighttablewindow.cpp:969
void toggleTag(int tagID)
Definition lighttablewindow.cpp:964
void loadItemInfos(const ItemInfoList &list, const ItemInfo &imageInfoCurrent, bool addTo)
Definition lighttablewindow.cpp:157
DInfoInterface * infoIface(DPluginAction *const ac) override
Definition lighttablewindow.cpp:1109
void slotAssignRating(int rating)
Definition lighttablewindow.cpp:979
void slotFileChanged(const QString &filePath)
Definition lighttablewindow.cpp:205
void applySettings()
Definition lighttablewindow_config.cpp:92
void slotColorManagementOptionsChanged()
Definition lighttablewindow_config.cpp:25
static bool lightTableWindowCreated()
Definition lighttablewindow.cpp:32
void slotAssignColorLabel(int colorId)
Definition lighttablewindow.cpp:974
~LightTableWindow() override
Definition lighttablewindow.cpp:81
Definition datefolderview.cpp:34