6#include "sieveactionbreak.h"
7#include "autocreatescripts/autocreatescriptutil_p.h"
8#include "editor/sieveeditorutil.h"
10#include <KLineEditEventHandler>
11#include <KLocalizedString>
14#include "libksieveui_debug.h"
17#include <QXmlStreamReader>
19using namespace KSieveUi;
20SieveActionBreak::SieveActionBreak(SieveEditorGraphicalModeWidget *sieveGraphicalModeWidget,
QObject *parent)
21 : SieveAction(sieveGraphicalModeWidget, QStringLiteral(
"break"),
i18n(
"Break"), parent)
27 auto w =
new QWidget(
parent);
28 auto lay =
new QHBoxLayout;
29 lay->setContentsMargins({});
32 auto lab =
new QLabel(
i18nc(
"@label:textbox",
"Name (optional):"));
35 auto subject =
new QLineEdit;
37 subject->setObjectName(QLatin1StringView(
"name"));
39 lay->addWidget(subject);
43void SieveActionBreak::setParamWidgetValue(QXmlStreamReader &element, QWidget *w, QString &error)
46 const QStringView tagName = element.
name();
47 if (tagName == QLatin1StringView(
"tag")) {
49 if (tagValue == QLatin1StringView(
"name")) {
50 auto name = w->
findChild<QLineEdit *>(QStringLiteral(
"name"));
51 name->setText(AutoCreateScriptUtil::strValue(element));
53 unknownTagValue(tagValue, error);
54 qCDebug(LIBKSIEVEUI_LOG) <<
" SieveActionBreak::setParamWidgetValue unknown tagValue " <<
tagValue;
56 }
else if (tagName == QLatin1StringView(
"str")) {
59 }
else if (tagName == QLatin1StringView(
"crlf")) {
62 }
else if (tagName == QLatin1StringView(
"comment")) {
66 unknownTag(tagName, error);
67 qCDebug(LIBKSIEVEUI_LOG) <<
"SieveActionBreak::setParamWidgetValue unknown tag " << tagName;
72QUrl SieveActionBreak::href()
const
74 return SieveEditorUtil::helpUrl(SieveEditorUtil::strToVariableName(name()));
77QString SieveActionBreak::code(QWidget *w)
const
79 const QLineEdit *name = w->
findChild<QLineEdit *>(QStringLiteral(
"name"));
80 const QString nameStr = name->text();
81 if (!nameStr.isEmpty()) {
82 return QStringLiteral(
"break :name \"%1\";").arg(nameStr);
84 return QStringLiteral(
"break;");
87QString SieveActionBreak::help()
const
89 return i18n(
"The break command terminates the closest enclosing loop.");
92QStringList SieveActionBreak::needRequires(QWidget * )
const
94 return QStringList() << QStringLiteral(
"foreverypart");
97bool SieveActionBreak::needCheckIfServerHasCapability()
const
102QString SieveActionBreak::serverNeedsCapability()
const
104 return QStringLiteral(
"foreverypart");
107#include "moc_sieveactionbreak.cpp"
QString i18nc(const char *context, const char *text, const TYPE &arg...)
QString i18n(const char *text, const TYPE &arg...)
void catchReturnKey(QObject *lineEdit)
QByteArray tagValue(const Elem &elem, const char *keyName)
void textChanged(const QString &text)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
T findChild(const QString &name, Qt::FindChildOptions options) const const
QObject * parent() const const
QStringView name() const const
QString readElementText(ReadElementTextBehaviour behaviour)
bool readNextStartElement()
void skipCurrentElement()