File indexing completed on 2024-05-12 05:25:41
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libsieveeditor_export.h" 0010 #include <KXmlGuiWindow> 0011 class QAction; 0012 class SieveEditorCentralWidget; 0013 class QLabel; 0014 class SieveEditorBookmarks; 0015 class KActionMenu; 0016 class KToggleFullScreenAction; 0017 0018 namespace PimCommon 0019 { 0020 class KActionMenuChangeCase; 0021 } 0022 class LIBSIEVEEDITOR_EXPORT SieveEditorMainWindow : public KXmlGuiWindow 0023 { 0024 Q_OBJECT 0025 public: 0026 explicit SieveEditorMainWindow(QWidget *parent = nullptr); 0027 ~SieveEditorMainWindow() override; 0028 0029 [[nodiscard]] QString currentHelpTitle() const; 0030 [[nodiscard]] QUrl currentHelpUrl() const; 0031 0032 protected: 0033 void closeEvent(QCloseEvent *e) override; 0034 0035 private: 0036 void slotConfigure(); 0037 void slotAddServerSieve(); 0038 void slotCreateNewScript(); 0039 void slotDeleteScript(); 0040 void slotUpdateButtons(bool newScriptAction, bool editScriptAction, bool deleteScriptAction, bool desactivateScriptAction); 0041 void slotEditScript(); 0042 void slotDesactivateScript(); 0043 void slotRefreshList(); 0044 void slotUploadScript(); 0045 void slotUpdateActions(); 0046 void slotSystemNetworkOnlineStateChanged(bool state); 0047 void slotUndoAvailable(bool); 0048 void slotRedoAvailable(bool); 0049 void slotCopyAvailable(bool b); 0050 void slotOpenBookmarkUrl(const QUrl &url); 0051 void slotImportImapSettings(); 0052 void initStatusBar(); 0053 void readConfig(); 0054 void setupActions(); 0055 [[nodiscard]] QString currentText() const; 0056 void slotFullScreen(bool t); 0057 void writeConfig(); 0058 0059 SieveEditorCentralWidget *mMainWidget = nullptr; 0060 QAction *mDeleteScript = nullptr; 0061 QAction *mNewScript = nullptr; 0062 QAction *mEditScript = nullptr; 0063 QAction *mDesactivateScript = nullptr; 0064 QAction *mRefreshList = nullptr; 0065 QAction *mUploadScript = nullptr; 0066 QAction *mGoToLine = nullptr; 0067 QAction *mFindAction = nullptr; 0068 QAction *mReplaceAction = nullptr; 0069 QAction *mUndoAction = nullptr; 0070 QAction *mRedoAction = nullptr; 0071 QAction *mCopyAction = nullptr; 0072 QAction *mPasteAction = nullptr; 0073 QAction *mCutAction = nullptr; 0074 QAction *mSelectAllAction = nullptr; 0075 QAction *mSaveAsAction = nullptr; 0076 QAction *mImportAction = nullptr; 0077 QAction *mShareAction = nullptr; 0078 QAction *mSpellCheckAction = nullptr; 0079 QAction *mCheckSyntaxAction = nullptr; 0080 QAction *mCreateRulesGraphicallyAction = nullptr; 0081 QAction *mCommentAction = nullptr; 0082 QAction *mUncommentAction = nullptr; 0083 QAction *mZoomInAction = nullptr; 0084 QAction *mZoomOutAction = nullptr; 0085 QAction *mZoomResetAction = nullptr; 0086 QAction *mDebugSieveScriptAction = nullptr; 0087 QAction *mWrapTextAction = nullptr; 0088 QAction *mPrintAction = nullptr; 0089 QAction *mPrintPreviewAction = nullptr; 0090 PimCommon::KActionMenuChangeCase *mMenuChangeCaseAction = nullptr; 0091 0092 QLabel *mStatusBarInfo = nullptr; 0093 SieveEditorBookmarks *mSieveEditorBookmarks = nullptr; 0094 KActionMenu *mBookmarkMenu = nullptr; 0095 KToggleFullScreenAction *mShowFullScreenAction = nullptr; 0096 bool mNetworkIsDown = false; 0097 };