digiKam
Loading...
Searching...
No Matches
dxmlguiwindow.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 : 2013-04-29
7 * Description : digiKam XML GUI window
8 *
9 * SPDX-FileCopyrightText: 2013-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 <QWidget>
20#include <QObject>
21#include <QAction>
22#include <QWindow>
23
24// KDE includes
25
26#include <kxmlguiwindow.h>
27
28// Local includes
29
30#include "digikam_export.h"
31#include "digikam_config.h"
32#include "dlogoaction.h"
33#include "dinfointerface.h"
34#include "dpluginaction.h"
35#include "dpluginloader.h"
36
37class QEvent;
38
39class KToolBar;
40class KConfigGroup;
41
42namespace Digikam
43{
44
61
78
79
83class DIGIKAM_EXPORT DXmlGuiWindow : public KXmlGuiWindow
84{
85 Q_OBJECT
86
87public:
88
89 explicit DXmlGuiWindow(QWidget* const parent = nullptr,
90 Qt::WindowFlags f = Qt::WindowFlags());
91 ~DXmlGuiWindow() override;
92
96 void setConfigGroupName(const QString& name);
97 QString configGroupName() const;
98
102 void createSettingsActions();
103
107 void createHelpActions(const QString& handbookSection, bool coreOptions = true);
108
112 void cleanupActions();
113
117 void createSidebarActions();
118
122 void setFullScreenOptions(int options);
123
129 void createFullScreenAction(const QString& name);
130
134 void readFullScreenSettings(const KConfigGroup& group);
135
139 bool fullScreenIsActive() const;
140
144 QList<QAction*> allActions() const;
145
146public:
147
152 void registerPluginsActions();
153 virtual void registerExtraPluginsActions(QString& /*dom*/) {};
154
158 virtual DInfoInterface* infoIface(DPluginAction* const ac) = 0;
159
160public:
161
162 void unminimizeAndActivateWindow();
163
164public:
165
166 static void restoreWindowSize(QWindow* const win, const KConfigGroup& group);
167 static void saveWindowSize(QWindow* const win, KConfigGroup& group);
168 static void setGoodDefaultWindowSize(QWindow* const win);
169
170 static QAction* buildStdAction(StdActionType type,
171 const QObject* const recvr,
172 const char* const slot,
173 QObject* const parent);
174
178 static void setupIconTheme();
179
183 static QString configFullScreenHideToolBarsEntry() { return QLatin1String("FullScreen Hide ToolBars"); };
184 static QString configFullScreenHideThumbBarEntry() { return QLatin1String("FullScreen Hide ThumbBar"); };
185 static QString configFullScreenHideSideBarsEntry() { return QLatin1String("FullScreen Hide SideBars"); };
186 static QString configFullScreenHideStatusBarEntry() { return QLatin1String("FullScreen Hide StatusBar"); };
187
188protected:
189
190 DLogoAction* m_animLogo = nullptr;
191
192protected:
193
194 QAction* showMenuBarAction() const;
195 QAction* showStatusBarAction() const;
196
202 void editKeyboardShortcuts(KActionCollection* const extraac = nullptr, const QString& actitle = QString());
203
204 void closeEvent(QCloseEvent* e) override;
205 void keyPressEvent(QKeyEvent* e) override;
206 bool eventFilter(QObject* obj, QEvent* ev) override;
207
212 virtual void showSideBars(bool visible);
213
218 virtual void showThumbBar(bool visible);
219
224 virtual void customizedFullScreenMode(bool set);
225
229 virtual bool thumbbarVisibility() const;
230
231protected Q_SLOTS:
232
233 bool slotClose();
234
235private Q_SLOTS:
236
237 void slotToggleFullScreen(bool);
238 void slotShowMenuBar();
239 void slotShowStatusBar();
240 void slotConfNotifications();
241 void slotConfToolbars();
242 void slotNewToolbarConfig();
243
244 void slotRawCameraList();
245 void slotSolidHardwareList();
246 void slotDonateMoney();
247 void slotRecipesBook();
248 void slotContribute();
249 void slotHelpContents();
250
254 virtual void slotOnlineVersionCheck() {};
255 virtual void slotComponentsInfo() {};
256 virtual void slotDBStat() {};
257
261 virtual void slotToggleLeftSideBar() {};
262 virtual void slotToggleRightSideBar() {};
263 virtual void slotPreviousLeftSideBarTab() {};
264 virtual void slotNextLeftSideBarTab() {};
265 virtual void slotPreviousRightSideBarTab() {};
266 virtual void slotNextRightSideBarTab() {};
267
271 virtual void slotEditKeys() { editKeyboardShortcuts(); };
272 virtual void slotSetup() = 0;
273
274private:
275
279 void showToolBars(bool visible);
280
284 KToolBar* mainToolBar() const;
285
289 void checkFullScreenBeforeClosing();
290
291private:
292
293 class Private;
294 Private* const d = nullptr;
295};
296
297} // namespace Digikam
Definition dinfointerface.h:48
Definition dlogoaction.h:29
Definition dpluginaction.h:30
Definition dxmlguiwindow.h:84
virtual DInfoInterface * infoIface(DPluginAction *const ac)=0
static QString configFullScreenHideSideBarsEntry()
Definition dxmlguiwindow.h:185
virtual void registerExtraPluginsActions(QString &)
Definition dxmlguiwindow.h:153
static QString configFullScreenHideStatusBarEntry()
Definition dxmlguiwindow.h:186
static QString configFullScreenHideToolBarsEntry()
Definition dxmlguiwindow.h:183
static QString configFullScreenHideThumbBarEntry()
Definition dxmlguiwindow.h:184
Definition datefolderview.cpp:34
FullScreenOptions
Definition dxmlguiwindow.h:49
@ FS_NONE
No full-screen options.
Definition dxmlguiwindow.h:54
@ FS_EDITOR
Image Editor Config.
Definition dxmlguiwindow.h:57
@ FS_THUMBBAR
Manage Thumb bar in full-screen mode.
Definition dxmlguiwindow.h:51
@ FS_SIDEBARS
Manage Side bars in full-screen mode.
Definition dxmlguiwindow.h:52
@ FS_IMPORTUI
Import UI Config.
Definition dxmlguiwindow.h:59
@ FS_ALBUMGUI
Album GUI Config.
Definition dxmlguiwindow.h:56
@ FS_STATUSBAR
Manage Status bar in full-screen mode.
Definition dxmlguiwindow.h:53
@ FS_TOOLBARS
Manage Tools bar in full-screen mode.
Definition dxmlguiwindow.h:50
@ FS_LIGHTTABLE
Light Table Config.
Definition dxmlguiwindow.h:58
StdActionType
Definition dxmlguiwindow.h:63
@ StdCloseAction
Definition dxmlguiwindow.h:68
@ StdQuitAction
Definition dxmlguiwindow.h:67
@ StdCopyAction
Definition dxmlguiwindow.h:64
@ StdZoomInAction
Definition dxmlguiwindow.h:69
@ StdRevertAction
Definition dxmlguiwindow.h:74
@ StdCutAction
Definition dxmlguiwindow.h:66
@ StdForwardAction
Definition dxmlguiwindow.h:76
@ StdSaveAction
Definition dxmlguiwindow.h:72
@ StdOpenAction
Definition dxmlguiwindow.h:71
@ StdSaveAsAction
Definition dxmlguiwindow.h:73
@ StdBackAction
Definition dxmlguiwindow.h:75
@ StdZoomOutAction
Definition dxmlguiwindow.h:70
@ StdPasteAction
Definition dxmlguiwindow.h:65