7 #include "snippetwidget.h"
8 #include "ui_snippetwidget.h"
9 #include <KPIMTextEdit/PlainTextEditor>
10 #include <MessageComposer/ConvertSnippetVariableMenu>
12 #include <KActionCollection>
14 #include <KLocalizedString>
16 #include <QVBoxLayout>
19 class Q_DECL_HIDDEN SnippetWidgetPrivate
22 Ui::SnippetWidget mUi;
24 bool isSelectedGroup =
false;
25 bool wasChanged =
false;
28 SnippetWidget::SnippetWidget(
QWidget *parent)
30 , d(new SnippetWidgetPrivate)
36 d->mUi.setupUi(d->wdg);
40 d->mUi.pushButtonVariables->setMenu(variableMenu->menu());
42 &MessageComposer::ConvertSnippetVariableMenu::insertVariable,
44 [
this](MessageComposer::ConvertSnippetVariablesUtil::VariableType type) {
45 d->mUi.snippetText->editor()->insertPlainText(MessageComposer::ConvertSnippetVariablesUtil::snippetVariableFromEnum(type) +
QLatin1Char(
' '));
48 d->mUi.nameEdit->setTrapReturnKey(
true);
49 d->mUi.keyword->setTrapReturnKey(
true);
50 d->mUi.keyword->setClearButtonEnabled(
true);
51 d->mUi.nameEdit->setClearButtonEnabled(
true);
52 d->mUi.nameEdit->setFocus();
53 d->mUi.snippetText->setMinimumSize(500, 300);
55 d->mUi.keyword->setWhatsThis(
56 i18n(
"Enter a keyword here to enable fast insertion of this snippet while writing "
57 "an email. For instance if you choose \"greeting\" as the keyword, you can then "
58 "type \\greeting in your email and then press the tab key, and it will be "
59 "replaced with the contents of this snippet."));
62 Q_EMIT textChanged(str);
66 Q_EMIT groupChanged(index);
90 connect(d->mUi.attachment, &MailCommon::SnippetAttachmentWidget::wasChanged,
this, [
this]() {
95 SnippetWidget::~SnippetWidget() =
default;
97 void SnippetWidget::setName(
const QString &name)
99 d->mUi.nameEdit->setText(name);
102 QString SnippetWidget::name()
const
104 return d->mUi.nameEdit->text();
107 void SnippetWidget::setText(
const QString &text)
109 d->mUi.snippetText->setPlainText(text);
112 QString SnippetWidget::text()
const
114 return d->mUi.snippetText->toPlainText();
117 void SnippetWidget::setKeySequence(
const QKeySequence &sequence)
119 d->mUi.keyWidget->setKeySequence(sequence);
124 return d->mUi.keyWidget->keySequence();
127 void SnippetWidget::setKeyword(
const QString &keyword)
129 d->mUi.keyword->setText(keyword);
132 QString SnippetWidget::keyword()
const
134 return d->mUi.keyword->text();
137 void SnippetWidget::setTo(
const QString &keyword)
139 d->mUi.to->setText(keyword);
142 QString SnippetWidget::to()
const
144 return d->mUi.to->text();
147 void SnippetWidget::setCc(
const QString &keyword)
149 d->mUi.cc->setText(keyword);
152 QString SnippetWidget::cc()
const
154 return d->mUi.cc->text();
157 void SnippetWidget::setBcc(
const QString &keyword)
159 d->mUi.bcc->setText(keyword);
162 QString SnippetWidget::bcc()
const
164 return d->mUi.bcc->text();
169 d->mUi.groupBox->setModel(model);
172 void SnippetWidget::setGroupIndex(
const QModelIndex &index)
174 d->mUi.groupBox->setCurrentIndex(index.
row());
179 return d->mUi.groupBox->model()->index(d->mUi.groupBox->currentIndex(), 0);
182 bool SnippetWidget::snippetIsValid()
const
184 if (d->mUi.nameEdit->text().trimmed().isEmpty()) {
187 if (d->mUi.groupWidget->isVisible()) {
188 return !d->mUi.groupBox->currentText().trimmed().isEmpty();
196 d->mUi.keyWidget->setCheckActionCollections(lst);
199 void SnippetWidget::setGroupSelected(
bool inGroupMode)
201 d->isSelectedGroup = inGroupMode;
202 d->mUi.groupWidget->setVisible(!inGroupMode);
205 bool SnippetWidget::isGroupSelected()
const
207 return d->isSelectedGroup;
210 void SnippetWidget::clear()
212 d->mUi.nameEdit->clear();
213 d->mUi.keyword->clear();
214 d->mUi.snippetText->clear();
215 d->mUi.keyWidget->setKeySequence({});
216 d->mUi.subject->clear();
220 d->mUi.attachment->clear();
223 bool SnippetWidget::wasChanged()
const
225 return d->wasChanged;
228 void SnippetWidget::setWasChanged(
bool b)
233 QString SnippetWidget::subject()
const
235 return d->mUi.subject->text();
238 void SnippetWidget::setAttachment(
const QString &keyword)
240 d->mUi.attachment->setText(keyword);
243 QString SnippetWidget::attachment()
const
245 return d->mUi.attachment->text();
248 void SnippetWidget::setSubject(
const QString &text)
250 d->mUi.subject->setText(text);