digiKam
Loading...
Searching...
No Matches
digikamapp_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 : 2007-31-01
7 * Description : main digiKam interface implementation
8 *
9 * SPDX-FileCopyrightText: 2007-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2014 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18#include "digikamapp.h"
19
20// Qt includes
21
22#include <QEventLoop>
23#include <QMap>
24#include <QPointer>
25#include <QScopedPointer>
26#include <QString>
27#include <QAction>
28#include <QActionGroup>
29#include <QMenu>
30#include <QApplication>
31#include <QStringList>
32#include <QDomDocument>
33#include <QStandardPaths>
34#include <QKeySequence>
35#include <QMenuBar>
36#include <QTimer>
37#include <QIcon>
38#include <QMessageBox>
39#include <QStatusBar>
40#include <QDir>
41#include <QMetaType>
42
43// KDE includes
44
45#if !defined(Q_OS_DARWIN) && defined(Q_CC_GNU)
46# pragma GCC diagnostic push
47# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
48#endif
49
50#if defined(Q_CC_CLANG)
51# pragma clang diagnostic push
52# pragma clang diagnostic ignored "-Wdeprecated-declarations"
53#endif
54
55#include <kconfiggroup.h>
56#include <klocalizedstring.h>
57#include <kactioncollection.h>
58#include <ktoolbar.h>
59#include <ktoolbarpopupaction.h>
60#include <kselectaction.h>
61#include <ksharedconfig.h>
62#include <kxmlgui_version.h>
63
64#ifdef HAVE_KICONTHEMES
65# include <kiconthemes_version.h>
66#endif
67
68// Restore warnings
69#if !defined(Q_OS_DARWIN) && defined(Q_CC_GNU)
70# pragma GCC diagnostic pop
71#endif
72
73#if defined(Q_CC_CLANG)
74# pragma clang diagnostic pop
75#endif
76
77// Local includes
78
79#include "digikam_config.h"
80#include "digikam_globals.h"
81#include "digikam_debug.h"
82#include "albummanager.h"
83#include "applicationsettings.h"
84#include "cameralist.h"
85#include "cameratype.h"
86#include "cameranamehelper.h"
87#include "dsplashscreen.h"
88#include "dzoombar.h"
89#include "itemiconview.h"
90#include "metadatastatusbar.h"
91#include "itempropertiestab.h"
92#include "importui.h"
93#include "setup.h"
95#include "drawdecoder.h"
96#include "dlayoutbox.h"
97#include "album.h"
98#include "coredb.h"
99#include "albummodel.h"
100#include "albumselectdialog.h"
101#include "albumthumbnailloader.h"
102#include "dbinfoiface.h"
103#include "categorizeditemmodel.h"
104#include "collectionscanner.h"
105#include "collectionmanager.h"
106#include "componentsinfodlg.h"
108#include "dio.h"
109#include "dlogoaction.h"
110#include "fileactionmngr.h"
111#include "filterstatusbar.h"
112#include "iccsettings.h"
113#include "itemattributeswatch.h"
114#include "iteminfo.h"
115#include "imagewindow.h"
116#include "lighttablewindow.h"
117#include "queuemgrwindow.h"
118#include "loadingcache.h"
120#include "loadsavethread.h"
121#include "metaengine_rotation.h"
122#include "scancontroller.h"
123#include "setupeditor.h"
124#include "setupicc.h"
125#include "thememanager.h"
126#include "thumbnailloadthread.h"
127#include "thumbnailsize.h"
128#include "dmetadata.h"
129#include "tagscache.h"
130#include "tagsactionmngr.h"
132#include "metaenginesettings.h"
134#include "dbmigrationdlg.h"
135#include "progressmanager.h"
136#include "progressview.h"
137#include "maintenancedlg.h"
138#include "maintenancemngr.h"
139#include "newitemsfinder.h"
140#include "dbcleaner.h"
141#include "tagsmanager.h"
142#include "itemsortsettings.h"
143#include "metadatahubmngr.h"
144#include "dfiledialog.h"
145#include "dpluginloader.h"
146#include "exiftoolparser.h"
147#include "exiftoolthread.h"
148#include "facesdetector.h"
149#include "localizesettings.h"
150#include "networkmanager.h"
151#include "dnotificationwidget.h"
152#include "dnnmodelmanager.h"
153
154#ifdef HAVE_GEOLOCATION
155# include "geolocationsettings.h"
156#endif
157
158#ifdef HAVE_DBUS
159# include "digikamadaptor.h"
160#endif
161
162#ifdef HAVE_KFILEMETADATA
163# include "baloowrap.h"
164#endif
165
166class KToolBarPopupAction;
167
168namespace Digikam
169{
170
171class SearchTextBar;
172class FilterStatusBar;
173class TagsActionMngr;
174class DAdjustableLabel;
175
176class Q_DECL_HIDDEN ProgressEntry
177{
178public:
179
180 ProgressEntry() = default;
181
182 QString message;
183 float progress = 0.0;
184 bool canCancel = false;
185};
186
187// ------------------------------------------------------------------------------
188
189class Q_DECL_HIDDEN DigikamApp::Private
190{
191public:
192
193 Private() = default;
194
195 bool autoShowZoomToolTip = false;
196 bool validIccPath = true;
197
198 QMenu* cameraMenu = nullptr;
199 QMenu* usbMediaMenu = nullptr;
200 QMenu* cardReaderMenu = nullptr;
201 QMenu* quickImportMenu = nullptr;
202 QHash<QString, QDateTime> cameraAppearanceTimes;
203
204 KSharedConfig::Ptr config;
205
207 QAction* newAction = nullptr;
208 QAction* moveSelectionToAlbumAction = nullptr;
209 QAction* copySelectionToAction = nullptr;
210 QAction* deleteAction = nullptr;
211 QAction* renameAction = nullptr;
212 QAction* imageDeletePermanentlyAction = nullptr;
213 QAction* imageDeletePermanentlyDirectlyAction = nullptr;
214 QAction* imageTrashDirectlyAction = nullptr;
215 KToolBarPopupAction* backwardActionMenu = nullptr;
216 KToolBarPopupAction* forwardActionMenu = nullptr;
217
218 QAction* addImagesAction = nullptr;
219 QAction* propsEditAction = nullptr;
220 QAction* addFoldersAction = nullptr;
221 QAction* openInFileManagerAction = nullptr;
222 QAction* refreshAction = nullptr;
223 QAction* writeAlbumMetadataAction = nullptr;
224 QAction* readAlbumMetadataAction = nullptr;
225
227 QAction* browseTagsAction = nullptr;
228 QAction* openTagMngrAction = nullptr;
229 QAction* newTagAction = nullptr;
230 QAction* deleteTagAction = nullptr;
231 QAction* editTagAction = nullptr;
232 QAction* assignTagAction = nullptr;
233
235 KSelectAction* imageViewSelectionAction = nullptr;
236 QAction* imagePreviewAction = nullptr;
237
238#ifdef HAVE_GEOLOCATION
239
240 QAction* imageMapViewAction = nullptr;
241
242#endif // HAVE_GEOLOCATION
243
244 QAction* imageTableViewAction = nullptr;
245 QAction* imageIconViewAction = nullptr;
246 QAction* imageLightTableAction = nullptr;
247 QAction* imageAddLightTableAction = nullptr;
248 QAction* imageAddCurrentQueueAction = nullptr;
249 QAction* imageAddNewQueueAction = nullptr;
250 QAction* imageViewAction = nullptr;
251 QAction* imageWriteMetadataAction = nullptr;
252 QAction* imageReadMetadataAction = nullptr;
253 QAction* imageScanForFacesAction = nullptr;
254 QAction* imageRecognizeFacesAction = nullptr;
255 QAction* imageRemoveAllFacesAction = nullptr;
256 QAction* imageFindSimilarAction = nullptr;
257 QAction* imageSetExifOrientation1Action = nullptr;
258 QAction* imageSetExifOrientation2Action = nullptr;
259 QAction* imageSetExifOrientation3Action = nullptr;
260 QAction* imageSetExifOrientation4Action = nullptr;
261 QAction* imageSetExifOrientation5Action = nullptr;
262 QAction* imageSetExifOrientation6Action = nullptr;
263 QAction* imageSetExifOrientation7Action = nullptr;
264 QAction* imageSetExifOrientation8Action = nullptr;
265 QAction* imageRenameAction = nullptr;
266 QMenu* imageRotateActionMenu = nullptr;
267 QMenu* imageFlipActionMenu = nullptr;
268 QAction* imageAutoExifActionMenu = nullptr;
269 QAction* imageDeleteAction = nullptr;
270 QMenu* imageExifOrientationActionMenu = nullptr;
271 QAction* openWithAction = nullptr;
272 QAction* ieAction = nullptr;
273 QAction* ltAction = nullptr;
274
276 QAction* cutItemsAction = nullptr;
277 QAction* copyItemsAction = nullptr;
278 QAction* pasteItemsAction = nullptr;
279 QAction* selectAllAction = nullptr;
280 QAction* selectNoneAction = nullptr;
281 QAction* selectInvertAction = nullptr;
282
284 QAction* zoomPlusAction = nullptr;
285 QAction* zoomMinusAction = nullptr;
286 QAction* zoomFitToWindowAction = nullptr;
287 QAction* zoomTo100percents = nullptr;
288 KSelectAction* imageSortAction = nullptr;
289 KSelectAction* imageSortOrderAction = nullptr;
290 KSelectAction* imageSeparationAction = nullptr;
291 KSelectAction* imageSeparationSortOrderAction = nullptr;
292 KSelectAction* albumSortAction = nullptr;
293 QAction* allGroupsOpenAction = nullptr;
294 QAction* recurseAlbumsAction = nullptr;
295 QAction* recurseTagsAction = nullptr;
296 QAction* showBarAction = nullptr;
297 QAction* viewCMViewAction = nullptr;
298
300 QAction* bqmAction = nullptr;
301 QAction* maintenanceAction = nullptr;
302 QAction* scanNewItemsAction = nullptr;
303 QAction* qualityAction = nullptr;
304 QAction* advSearchAction = nullptr;
305
307 QAction* addCameraSeparatorAction = nullptr;
308 QAction* quitAction = nullptr;
309 QAction* tipAction = nullptr;
310
311 QActionGroup* manualCameraActionGroup = nullptr;
312 QActionGroup* solidCameraActionGroup = nullptr;
313 QActionGroup* solidUsmActionGroup = nullptr;
314 QActionGroup* exifOrientationActionGroup = nullptr;
315
316 QMap<QString, QPointer<ImportUI> > cameraUIMap;
317
318 QEventLoop* eventLoop = nullptr;
320
321 MetadataStatusBar* metadataStatusBar = nullptr;
322 FilterStatusBar* filterStatusBar = nullptr;
323 DSplashScreen* splashScreen = nullptr;
324 ItemIconView* view = nullptr;
325 CameraList* cameraList = nullptr;
326 TagsActionMngr* tagsActionManager = nullptr;
327 DZoomBar* zoomBar = nullptr;
328 DAdjustableLabel* statusLabel = nullptr;
329
330 DModelFactory* modelCollection = nullptr;
331};
332
333} // namespace Digikam
Definition cameralist.h:37
Definition dexpanderbox.h:56
Definition dmodelfactory.h:39
Definition dsplashscreen.h:31
Definition dzoombar.h:32
Definition digikamapp_p.h:190
QMap< QString, QPointer< ImportUI > > cameraUIMap
Definition digikamapp_p.h:316
QString solidErrorMessage
Definition digikamapp_p.h:319
KSharedConfig::Ptr config
Definition digikamapp_p.h:204
QHash< QString, QDateTime > cameraAppearanceTimes
Definition digikamapp_p.h:202
Definition digikamapp.h:46
Definition filterstatusbar.h:29
Definition itemiconview.h:51
Definition metadatastatusbar.h:30
Definition digikamapp_p.h:177
QString message
Definition digikamapp_p.h:182
Definition tagsactionmngr.h:31
Definition datefolderview.cpp:34