Libksieve

sieveeditorwidget.h
1/*
2 SPDX-FileCopyrightText: 2014-2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5
6*/
7
8#pragma once
9#include "ksieveui_export.h"
10
11#include <QWidget>
12class QStackedWidget;
13class QLineEdit;
14class QAction;
15namespace KSieveCore
16{
18}
19namespace KSieveUi
20{
22class SieveEditorGraphicalModeWidget;
23/**
24 * @brief The SieveEditorWidget class
25 * @author Laurent Montel <montel@kde.org>
26 */
27class KSIEVEUI_EXPORT SieveEditorWidget : public QWidget
28{
30public:
31 explicit SieveEditorWidget(bool useMenuBar, QWidget *parent = nullptr);
32 ~SieveEditorWidget() override;
33 enum EditorMode {
34 Unknown = -1,
35 TextMode = 0,
36 GraphicMode = 1
37 };
38
39 void setReadOnly(bool b);
40 [[nodiscard]] QString script() const;
41 [[nodiscard]] QString originalScript() const;
42 void setScript(const QString &script, bool clearUndoRedo = false);
43 void setDebugScript(const QString &debug);
44 void setScriptName(const QString &name);
45
46 void resultDone();
47
48 void setSieveCapabilities(const QStringList &capabilities);
49 void setSieveImapAccountSettings(const KSieveCore::SieveImapAccountSettings &sieveImapAccountSettings);
50 void setListOfIncludeFile(const QStringList &listOfIncludeFile);
51
52 void addFailedMessage(const QString &err);
53 void addOkMessage(const QString &msg);
54 void addNormalMessage(const QString &msg);
55
56 void setModified(bool b);
57 [[nodiscard]] bool isModified() const;
58
59 [[nodiscard]] EditorMode mode() const;
60
61 [[nodiscard]] bool isRedoAvailable() const;
62 [[nodiscard]] bool isUndoAvailable() const;
63 [[nodiscard]] bool hasSelection() const;
64
65 void checkSpelling();
66 void lowerCase();
67 void upperCase();
68 void sentenceCase();
69 void reverseCase();
70 void zoomOut();
71 void zoomIn();
72 [[nodiscard]] QString currentHelpTitle() const;
73 [[nodiscard]] QUrl currentHelpUrl() const;
74 void openBookmarkUrl(const QUrl &url);
75 void debugSieveScript();
76 void zoomReset();
77 bool isWordWrap() const;
78
79 void updateOriginalScript();
80 void print();
81 void printPreview();
82
83 bool printSupportEnabled() const;
84 bool isTextEditor() const;
85public Q_SLOTS:
86 void find();
87 void replace();
88 void undo();
89 void redo();
90 void paste();
91 void copy();
92 void cut();
93 void selectAll();
94 void goToLine();
95 void slotSaveAs();
96 void slotImport();
97 void slotCreateRulesGraphically();
98 void slotCheckSyntax();
99 void comment();
100 void uncomment();
101 void setWordWrap(bool state);
102
104 void checkSyntax();
105 void enableButtonOk(bool b);
106 void valueChanged(bool b);
107 void modeEditorChanged(KSieveUi::SieveEditorWidget::EditorMode);
108 void undoAvailable(bool);
109 void redoAvailable(bool);
110 void copyAvailable(bool);
111 void changeModeEditor(bool);
112 void sieveEditorTabCurrentChanged();
113
114private:
115 KSIEVEUI_NO_EXPORT void slotEnableButtonOk(bool b);
116 KSIEVEUI_NO_EXPORT void slotGenerateXml();
117 KSIEVEUI_NO_EXPORT void slotSwitchMode();
118 KSIEVEUI_NO_EXPORT void slotSwitchTextMode(const QString &script);
119 KSIEVEUI_NO_EXPORT void slotSwitchToGraphicalMode();
120 KSIEVEUI_NO_EXPORT void slotModified();
121 KSIEVEUI_NO_EXPORT void changeSwitchButtonText();
122 KSIEVEUI_NO_EXPORT void changeMode(EditorMode mode);
123 KSIEVEUI_NO_EXPORT void addMessageEntry(const QString &errorMsg, const QColor &color);
124 KSIEVEUI_NO_EXPORT void slotServerInfo();
125 QString mOriginalScript;
126 SieveEditorTextModeWidget *mTextModeWidget = nullptr;
127 SieveEditorGraphicalModeWidget *mGraphicalModeWidget = nullptr;
128 QStackedWidget *mStackedWidget = nullptr;
129 QLineEdit *mScriptName = nullptr;
130 QAction *mCheckSyntax = nullptr;
131 QAction *mSwitchMode = nullptr;
132 QAction *mCreateRulesGraphically = nullptr;
133 QAction *mSaveAs = nullptr;
134 QAction *mGenerateXml = nullptr;
135 QAction *mServerInfo = nullptr;
136 EditorMode mMode = EditorMode::TextMode;
137 bool mModified = false;
138 bool mDebug = false;
139};
140}
The SieveImapAccountSettings class.
The SieveEditorTextModeWidget class.
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS
QObject * parent() const const
QWidget(QWidget *parent, Qt::WindowFlags f)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 31 2025 12:12:05 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.