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 };