File indexing completed on 2024-05-12 05:13:31
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include <KXmlGuiWindow> 0009 0010 class ThemeEditorPage; 0011 class QAction; 0012 class KToggleAction; 0013 class KRecentFilesAction; 0014 class QUrl; 0015 0016 class ThemeEditorMainWindow : public KXmlGuiWindow 0017 { 0018 Q_OBJECT 0019 public: 0020 explicit ThemeEditorMainWindow(); 0021 ~ThemeEditorMainWindow() override; 0022 0023 protected: 0024 void closeEvent(QCloseEvent *) override; 0025 0026 private Q_SLOTS: 0027 void slotUploadTheme(); 0028 0029 private: 0030 void slotNewTheme(); 0031 void slotCloseTheme(); 0032 void slotAddExtraPage(); 0033 void slotOpenTheme(); 0034 void slotQuitApp(); 0035 [[nodiscard]] bool slotSaveTheme(); 0036 void slotConfigure(); 0037 void slotInstallTheme(); 0038 void slotInsertFile(); 0039 void slotPrintingMode(); 0040 void slotNormalMode(); 0041 void slotManageTheme(); 0042 void slotUpdateView(); 0043 void slotCanInsertFile(bool b); 0044 void slotThemeSelected(const QUrl &); 0045 void slotSaveAsTheme(); 0046 0047 private: 0048 enum ActionSaveTheme { SaveOnly = 0, SaveAndCloseTheme, SaveAndCreateNewTheme }; 0049 0050 bool loadTheme(const QString &directory); 0051 void readConfig(); 0052 void writeConfig(); 0053 void updateActions(); 0054 bool saveCurrentProject(ActionSaveTheme act); 0055 void setupActions(); 0056 void closeThemeEditor(); 0057 ThemeEditorPage *mThemeEditor = nullptr; 0058 QAction *mNewThemeAction = nullptr; 0059 QAction *mCloseThemeAction = nullptr; 0060 QAction *mAddExtraPage = nullptr; 0061 QAction *mCloseAction = nullptr; 0062 QAction *mOpenAction = nullptr; 0063 QAction *mUploadTheme = nullptr; 0064 QAction *mSaveAction = nullptr; 0065 QAction *mInstallTheme = nullptr; 0066 QAction *mInsertFile = nullptr; 0067 QAction *mManageTheme = nullptr; 0068 QAction *mUpdateView = nullptr; 0069 QAction *mSaveAsAction = nullptr; 0070 KToggleAction *mPrintingMode = nullptr; 0071 KToggleAction *mNormalMode = nullptr; 0072 KRecentFilesAction *mRecentFileAction = nullptr; 0073 };