File indexing completed on 2024-05-05 05:39:29
0001 /* 0002 * SPDX-FileCopyrightText: 2009 Ben Cooksley <bcooksley@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef SETTINGS_BASE_H 0008 #define SETTINGS_BASE_H 0009 0010 #include "BaseMode.h" 0011 #include "MenuItem.h" 0012 #include "tooltipmanager.h" 0013 #include <QButtonGroup> 0014 #include <QMap> 0015 #include <QStackedWidget> 0016 0017 #include <KAboutApplicationDialog> 0018 #include <KActionMenu> 0019 #include <KConfigDialog> 0020 #include <KLineEdit> 0021 #include <KXmlGuiWindow> 0022 0023 class QScreen; 0024 0025 class SettingsBase : public KXmlGuiWindow 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 explicit SettingsBase(BaseMode::ApplicationMode mode, const QString &startupModule, const QStringList &startupModuleArgs, QWidget *parent = nullptr); 0031 ~SettingsBase() override; 0032 bool queryClose() override; 0033 0034 void setStartupModule(const QString &startupModule); 0035 void setStartupModuleArgs(const QStringList &startupModuleArgs); 0036 void reloadStartupModule(); 0037 0038 protected: 0039 QSize sizeHint() const override; 0040 0041 private Q_SLOTS: 0042 void initApplication(); 0043 void initToolBar(); 0044 void initHelpMenu(); 0045 void initMenuList(MenuItem *parent); 0046 void about(); 0047 void viewChange(bool state); 0048 void updateViewActions(); 0049 void changeToolBar(BaseMode::ToolBarItems toolbar); 0050 0051 private Q_SLOTS: 0052 /** 0053 * Updates the window size limit 0054 */ 0055 void slotGeometryChanged(); 0056 0057 private: 0058 /** 0059 * Initializes the sidebar plugin 0060 */ 0061 void loadCurrentView(); 0062 0063 // Follow screen resolution 0064 QScreen *m_screen = nullptr; 0065 0066 // The plugins 0067 QList<ToolTipManager *> tooltipManagers; 0068 BaseMode *view = nullptr; 0069 // The search bar 0070 QWidget *spacerWidget = nullptr; 0071 // The toolbar 0072 QWidgetAction *spacerAction = nullptr; 0073 QAction *highlightChangesAction = nullptr; 0074 QAction *reportPageSpecificBugAction = nullptr; 0075 QAction *quitAction = nullptr; 0076 // The help menu 0077 QAction *aboutViewAction = nullptr; 0078 KActionMenu *helpActionMenu = nullptr; 0079 // The control module 0080 QStackedWidget *stackedWidget = nullptr; 0081 // The module list 0082 MenuItem *rootModule = nullptr; 0083 MenuItem *homeModule = nullptr; 0084 MenuItem *lostFound = nullptr; 0085 QStringList categories; 0086 QList<KPluginMetaData> pluginModules; 0087 // The about dialog 0088 KAboutApplicationDialog *aboutDialog = nullptr; 0089 BaseMode::ApplicationMode m_mode = BaseMode::SystemSettings; 0090 QString m_startupModule; 0091 QStringList m_startupModuleArgs; 0092 }; 0093 #endif