7#include "sievetemplatewidget.h"
8#include "sievedefaulttemplate.h"
9#include "sievetemplateeditdialog.h"
10#include <PimCommon/TemplateManager>
12#include <KLocalizedString>
19using namespace KSieveUi;
20SieveTemplateListWidget::SieveTemplateListWidget(
const QString &configName,
QWidget *parent)
21 :
PimCommon::TemplateListWidget(configName, parent)
23 setKNewStuffConfigFile(QStringLiteral(
"ksieve_script.knsrc"));
28void SieveTemplateListWidget::setSieveCapabilities(
const QStringList &capabilities)
33QMimeData *SieveTemplateListWidget::mimeData(
const QList<QListWidgetItem *> &items)
const
35 if (
items.isEmpty()) {
38 auto mimeData =
new QMimeData();
40 QString templateStr =
item->data(TemplateListWidget::Text).toString();
41 if (!mCapabilities.contains(QLatin1StringView(
"imap4flags")) && templateStr.
contains(QLatin1StringView(
"imap4flags"))) {
42 templateStr.
replace(QStringLiteral(
"imap4flags"), QStringLiteral(
"imapflags"));
44 mimeData->setText(templateStr);
48SieveTemplateListWidget::~SieveTemplateListWidget() =
default;
50QList<PimCommon::defaultTemplate> SieveTemplateListWidget::defaultTemplates()
52 return KSieveUi::SieveDefaultTemplate::defaultTemplates();
55bool SieveTemplateListWidget::addNewTemplate(QString &templateName, QString &templateScript)
57 QPointer<SieveTemplateEditDialog> dlg =
new SieveTemplateEditDialog(
this);
58 dlg->setSieveCapabilities(mCapabilities);
61 templateName = dlg->templateName();
62 templateScript = dlg->script();
69bool SieveTemplateListWidget::modifyTemplate(QString &templateName, QString &templateScript,
bool defaultTemplate)
71 QPointer<SieveTemplateEditDialog> dlg =
new SieveTemplateEditDialog(
this, defaultTemplate);
72 dlg->setTemplateName(templateName);
73 dlg->setScript(templateScript);
74 dlg->setSieveCapabilities(mCapabilities);
77 if (!defaultTemplate) {
78 templateName = dlg->templateName();
79 templateScript = dlg->script();
87SieveTemplateWidget::SieveTemplateWidget(
const QString &title, QWidget *parent)
91 lay->setContentsMargins({});
92 auto lab =
new QLabel(title,
this);
94 mListTemplate =
new SieveTemplateListWidget(QStringLiteral(
"sievetemplaterc"),
this);
95 mListTemplate->setWhatsThis(
i18n(
"You can drag and drop element on editor to import template"));
96 connect(mListTemplate, &SieveTemplateListWidget::insertTemplate,
this, &SieveTemplateWidget::insertTemplate);
97 lay->addWidget(mListTemplate);
100SieveTemplateWidget::~SieveTemplateWidget() =
default;
102void SieveTemplateWidget::setSieveCapabilities(
const QStringList &capabilities)
104 mListTemplate->setSieveCapabilities(capabilities);
107#include "moc_sievetemplatewidget.cpp"
QString i18n(const char *text, const TYPE &arg...)
Capabilities capabilities()
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
QString & replace(QChar before, QChar after, Qt::CaseSensitivity cs)
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)