9#include "ksieveui_private_export.h"
11#include <QListWidgetItem>
19class SieveEditorGraphicalModeWidget;
21class SieveScriptListItem :
public QListWidgetItem
24 SieveScriptListItem(
const QString &
text, QListWidget *parent);
25 ~SieveScriptListItem()
override;
27 void setDescription(
const QString &desc);
28 [[nodiscard]] QString description()
const;
30 [[nodiscard]] SieveScriptPage *scriptPage()
const;
31 void setScriptPage(SieveScriptPage *page);
33 [[nodiscard]] QString generatedScript(QStringList &required)
const;
37 SieveScriptPage *mScriptPage =
nullptr;
40class KSIEVEUI_TESTS_EXPORT SieveScriptListBox :
public QGroupBox
44 explicit SieveScriptListBox(
const QString &title, QWidget *parent =
nullptr);
45 ~SieveScriptListBox()
override;
47 void setSieveEditorGraphicalModeWidget(SieveEditorGraphicalModeWidget *graphicalModeWidget);
48 [[nodiscard]] QString generatedScript(QStringList &required)
const;
49 void loadScript(
const QString &doc, QString &error);
52 void addNewPage(KSieveUi::SieveScriptPage *);
53 void removePage(QWidget *);
54 void activatePage(QWidget *);
55 void enableButtonOk(
bool);
59 void slotCustomMenuRequested(
const QPoint &pos);
64 void slotEditDescription();
65 void slotItemClicked(QListWidgetItem *);
71 enum ParseSieveScriptTypeBlock {
82 void loadBlock(QXmlStreamReader &n, SieveScriptPage *currentPage, ParseSieveScriptTypeBlock typeBlock, QString &error);
84 [[nodiscard]] SieveScriptPage *createNewScript(
const QString &newName,
const QString &description = QString());
85 [[nodiscard]] QString createUniqName();
86 SieveEditorGraphicalModeWidget *mSieveGraphicalModeWidget =
nullptr;
87 QListWidget *
const mSieveListScript;
88 QPushButton *mBtnNew =
nullptr;
89 QPushButton *mBtnDelete =
nullptr;
90 QPushButton *mBtnRename =
nullptr;
91 QPushButton *mBtnDescription =
nullptr;
92 QPushButton *mBtnTop =
nullptr;
93 QPushButton *mBtnUp =
nullptr;
94 QPushButton *mBtnDown =
nullptr;
95 QPushButton *mBtnBottom =
nullptr;
96 int mScriptNumber = 0;
QString text() const const