digiKam
Loading...
Searching...
No Matches
digikamapp.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 : 2002-16-10
7 * Description : main digiKam interface implementation
8 *
9 * SPDX-FileCopyrightText: 2002-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2006 by Tom Albers <tomalbers at kde dot nl>
11 * SPDX-FileCopyrightText: 2002-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 * SPDX-FileCopyrightText: 2009-2011 by Andi Clemens <andi dot clemens at gmail dot com>
13 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
14 *
15 * SPDX-License-Identifier: GPL-2.0-or-later
16 *
17 * ============================================================ */
18
19#pragma once
20
21// Qt includes
22
23#include <QAction>
24#include <QString>
25#include <QMenu>
26
27// Local includes
28
29#include "digikam_config.h"
30#include "dxmlguiwindow.h"
31#include "digikam_export.h"
32#include "facetags.h"
33
34namespace Digikam
35{
36
37class Album;
38class ItemIconView;
39class FaceScanSettings;
40class FilterStatusBar;
41class ItemInfo;
42class ItemInfoList;
43class CameraType;
44
45class DIGIKAM_GUI_EXPORT DigikamApp : public DXmlGuiWindow
46{
47 Q_OBJECT
48
49public:
50
51 explicit DigikamApp();
52 ~DigikamApp() override;
53
54 virtual void show();
55 void restoreSession();
56
57 void enableZoomPlusAction(bool val);
58 void enableZoomMinusAction(bool val);
59 void enableAlbumBackwardHistory(bool enable);
60 void enableAlbumForwardHistory(bool enable);
61
62 ItemIconView* view() const;
63
64 static DigikamApp* instance();
65
66public:
67
68 DInfoInterface* infoIface(DPluginAction* const ac) override;
69
70Q_SIGNALS:
71
80
82 void signalNotificationError(const QString& message, int type);
83
84protected:
85
86 bool queryClose() override;
87 void moveEvent(QMoveEvent* e) override;
88 void closeEvent(QCloseEvent* e) override;
89
90private:
91
92 void showThumbBar(bool visible) override;
93 void showSideBars(bool visible) override;
94 bool thumbbarVisibility() const override;
95 void customizedFullScreenMode(bool set) override;
96 void customizedTrashView(bool set);
97 void toggleShowBar();
98
99private Q_SLOTS:
100
101 void slotAlbumSelected(Album*);
102 void slotImageSelected(const ItemInfoList&, const ItemInfoList&);
103 void slotTrashSelectionChanged(const QString& text);
104 void slotSelectionChanged(int selectionCount);
105 void slotExit();
106 void slotDBStat() override;
107 void slotComponentsInfo() override;
108 void slotOnlineVersionCheck() override;
109
110 void slotRecurseAlbums(bool);
111 void slotRecurseTags(bool);
112
113 void slotAllGroupsOpen(bool);
114
115 void slotAboutToShowForwardMenu();
116 void slotAboutToShowBackwardMenu();
117
118 void slotColorManagementOptionsChanged();
119 void slotToggleColorManagedView();
120 void slotSetCheckedExifOrientationAction(const ItemInfo& info);
121 void slotResetExifOrientationActions();
122 void slotTransformAction();
123
124 void slotToggleLeftSideBar() override;
125 void slotToggleRightSideBar() override;
126 void slotPreviousLeftSideBarTab() override;
127 void slotNextLeftSideBarTab() override;
128 void slotPreviousRightSideBarTab() override;
129 void slotNextRightSideBarTab() override;
130
131 void slotToggleShowBar();
132
133 void slotZoomSliderChanged(int);
134 void slotThumbSizeChanged(int);
135 void slotZoomChanged(double);
136
137 void slotSwitchedToPreview();
138 void slotSwitchedToIconView();
139 void slotSwitchedToMapView();
140 void slotSwitchedToTableView();
141 void slotSwitchedToTrashView();
142
144
145
146private:
147
148 void setupView();
149 void setupViewConnections();
150 void setupStatusBar();
151 void setupActions();
152 void setupAccelerators();
153 void setupExifOrientationActions();
154 void setupImageTransformActions();
155 void populateThemes();
156 void preloadWindows();
157 void initGui();
159
161
162
163private:
164
165 void setupSelectToolsAction();
166
167private Q_SLOTS:
168
169 void slotMaintenance();
170 void slotScanNewItems();
171 void slotMaintenanceDone();
172 void slotDatabaseMigration();
173 void slotDetectFaces();
175
177
178
179private:
180
181 bool setup();
182 bool setupICC();
183
184private Q_SLOTS:
185
186 void slotSetup() override;
187 void slotSetupChanged();
188 void slotEditKeys() override;
189 void slotThemeChanged();
191
193// Import tools methods implemented in digikamapp_import.cpp
194
195private:
196
197 void updateQuickImportAction();
198
199private Q_SLOTS:
200
201 void slotImportedImagefromScanner(const QUrl& url);
202 void slotImportAddImages();
203 void slotImportAddFolders();
205
207// Camera management methods implemented in digikamapp_camera.cpp
208
209public:
210
211 void autoDetect();
212 void downloadFrom(const QString& cameraGuiPath);
213 void downloadFromUdi(const QString& udi);
214
215Q_SIGNALS:
216
217 void queuedOpenCameraUiFromPath(const QString& path);
218
219private:
220
221 void loadCameras();
222 void updateCameraMenu();
223
224private Q_SLOTS:
225
226 void slotSetupCamera();
227 void slotOpenManualCamera(QAction*);
228 void slotCameraAdded(CameraType*);
229 void slotCameraRemoved(QAction*);
230 void slotCameraAutoDetect();
231 void slotOpenCameraUiFromPath(const QString& path);
232 void downloadImages(const QString& folder);
233 void cameraAutoDetect();
235
237// Solid based methods implemented in digikamapp_solid.cpp
238
239Q_SIGNALS:
240
241 void queuedOpenSolidDevice(const QString& udi);
242
243private:
244
245 void fillSolidMenus();
246 void connectToSolidNotifiers();
247 void openSolidCamera(const QString& udi, const QString& label = QString());
248 void openSolidUsmDevice(const QString& udi, const QString& label = QString());
249
250private Q_SLOTS:
251
252 void slotOpenSolidCamera(QAction*);
253 void slotOpenSolidUsmDevice(QAction*);
254 void slotOpenSolidDevice(const QString& udi);
255 void slotSolidDeviceChanged(const QString& udi);
257
258private:
259
260 // Disable
261 DigikamApp(QWidget*) = delete;
262
263private:
264
265 class Private;
266 Private* const d = nullptr;
267
268 static DigikamApp* m_instance;
269};
270
271} // namespace Digikam
Abstract base class for all album types.
Definition album.h:57
Definition cameratype.h:31
Definition dinfointerface.h:48
Definition dpluginaction.h:30
Definition dxmlguiwindow.h:84
Definition digikamapp_p.h:190
Definition digikamapp.h:46
void queuedOpenSolidDevice(const QString &udi)
void signalCopyAlbumItemsSelection()
void queuedOpenCameraUiFromPath(const QString &path)
void signalCutAlbumItemsSelection()
void signalPasteAlbumItemsSelection()
void signalNotificationError(const QString &message, int type)
Definition itemiconview.h:51
Definition iteminfolist.h:37
Definition iteminfo.h:68
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34