1 /* 2 SPDX-FileCopyrightText: 2013-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "libsieveeditor_export.h" 10 #include <KXmlGuiWindow> 11 class QAction; 12 class SieveEditorCentralWidget; 13 class QLabel; 14 class SieveEditorBookmarks; 15 class KActionMenu; 16 namespace PimCommon 17 { 18 class KActionMenuChangeCase; 19 } 20 class LIBSIEVEEDITOR_EXPORT SieveEditorMainWindow : public KXmlGuiWindow 21 { 22 Q_OBJECT 23 public: 24 explicit SieveEditorMainWindow(QWidget *parent = nullptr); 25 ~SieveEditorMainWindow() override; 26 27 Q_REQUIRED_RESULT QString currentHelpTitle() const; 28 Q_REQUIRED_RESULT QUrl currentHelpUrl() const; 29 30 protected: 31 void closeEvent(QCloseEvent *e) override; 32 33 private: 34 void slotConfigure(); 35 void slotAddServerSieve(); 36 void slotCreateNewScript(); 37 void slotDeleteScript(); 38 void slotUpdateButtons(bool newScriptAction, bool editScriptAction, bool deleteScriptAction, bool desactivateScriptAction); 39 void slotEditScript(); 40 void slotDesactivateScript(); 41 void slotRefreshList(); 42 void slotUploadScript(); 43 void slotUpdateActions(); 44 void slotSystemNetworkOnlineStateChanged(bool state); 45 void slotUndoAvailable(bool); 46 void slotRedoAvailable(bool); 47 void slotCopyAvailable(bool b); 48 void slotOpenBookmarkUrl(const QUrl &url); 49 void slotImportImapSettings(); 50 51 private: 52 void initStatusBar(); 53 void readConfig(); 54 void setupActions(); 55 QString currentText() const; 56 57 SieveEditorCentralWidget *mMainWidget = nullptr; 58 QAction *mDeleteScript = nullptr; 59 QAction *mNewScript = nullptr; 60 QAction *mEditScript = nullptr; 61 QAction *mDesactivateScript = nullptr; 62 QAction *mRefreshList = nullptr; 63 QAction *mUploadScript = nullptr; 64 QAction *mGoToLine = nullptr; 65 QAction *mFindAction = nullptr; 66 QAction *mReplaceAction = nullptr; 67 QAction *mUndoAction = nullptr; 68 QAction *mRedoAction = nullptr; 69 QAction *mCopyAction = nullptr; 70 QAction *mPasteAction = nullptr; 71 QAction *mCutAction = nullptr; 72 QAction *mSelectAllAction = nullptr; 73 QAction *mSaveAsAction = nullptr; 74 QAction *mImportAction = nullptr; 75 QAction *mShareAction = nullptr; 76 QAction *mSpellCheckAction = nullptr; 77 QAction *mCheckSyntaxAction = nullptr; 78 QAction *mCreateRulesGraphicallyAction = nullptr; 79 QAction *mCommentAction = nullptr; 80 QAction *mUncommentAction = nullptr; 81 QAction *mZoomInAction = nullptr; 82 QAction *mZoomOutAction = nullptr; 83 QAction *mZoomResetAction = nullptr; 84 QAction *mDebugSieveScriptAction = nullptr; 85 QAction *mWrapTextAction = nullptr; 86 QAction *mPrintAction = nullptr; 87 QAction *mPrintPreviewAction = nullptr; 88 PimCommon::KActionMenuChangeCase *mMenuChangeCaseAction = nullptr; 89 90 QLabel *mStatusBarInfo = nullptr; 91 SieveEditorBookmarks *mSieveEditorBookmarks = nullptr; 92 KActionMenu *mBookmarkMenu = nullptr; 93 bool mNetworkIsDown = false; 94 }; 95 96