From c8914a7bd2bd4f409aef086a43bdbebebbcff2f7 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Wed, 18 Dec 2019 08:21:06 +0100 Subject: [PATCH] Allow to custom file name --- CMakeLists.txt | 2 +- ...ppetcustomfileattachmentnamewidgettest.cpp | 6 +++++ .../snippetcustomfileattachmentnamedialog.cpp | 5 +++++ .../snippetcustomfileattachmentnamedialog.h | 2 ++ .../snippetcustomfileattachmentnamewidget.cpp | 22 +++++++++++++++++++ .../snippetcustomfileattachmentnamewidget.h | 8 ++++++- .../snippetselectattachmentwidget.cpp | 8 ++++++- src/snippets/snippetwidget.cpp | 2 +- 8 files changed, 51 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d40e1f..490e10e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ set(PIMCOMMON_LIB_VERSION "5.13.42") set(AKONADI_VERSION "5.13.41") set(AKONADIMIME_LIB_VERSION "5.13.40") -set(MESSAGELIB_LIB_VERSION "5.13.40") +set(MESSAGELIB_LIB_VERSION "5.13.46") set(KMIME_LIB_VERSION "5.13.40") set(KMAILTRANSPORT_LIB_VERSION "5.13.40") set(MAILIMPORTER_LIB_VERSION "5.13.40") diff --git a/src/snippets/autotests/snippetcustomfileattachmentnamewidgettest.cpp b/src/snippets/autotests/snippetcustomfileattachmentnamewidgettest.cpp index dc1a591..bfb0bab 100644 --- a/src/snippets/autotests/snippetcustomfileattachmentnamewidgettest.cpp +++ b/src/snippets/autotests/snippetcustomfileattachmentnamewidgettest.cpp @@ -20,6 +20,7 @@ #include "snippetcustomfileattachmentnamewidgettest.h" #include "snippets/snippetcustomfileattachmentnamewidget.h" #include +#include #include #include QTEST_MAIN(SnippetCustomFileAttachmentNameWidgetTest) @@ -41,4 +42,9 @@ void SnippetCustomFileAttachmentNameWidgetTest::shouldHaveDefaultValues() QLineEdit *mLineEdit = w.findChild(QStringLiteral("mLineEdit")); QVERIFY(mLineEdit); QVERIFY(mLineEdit->text().isEmpty()); + + QPushButton *selectVariable = w.findChild(QStringLiteral("selectVariable")); + QVERIFY(selectVariable); + QVERIFY(!selectVariable->text().isEmpty()); + QVERIFY(selectVariable->menu()); } diff --git a/src/snippets/snippetcustomfileattachmentnamedialog.cpp b/src/snippets/snippetcustomfileattachmentnamedialog.cpp index 1352863..8504ed2 100644 --- a/src/snippets/snippetcustomfileattachmentnamedialog.cpp +++ b/src/snippets/snippetcustomfileattachmentnamedialog.cpp @@ -55,3 +55,8 @@ QString SnippetCustomFileAttachmentNameDialog::result() const { return mCustomWidget->result(); } + +void SnippetCustomFileAttachmentNameDialog::setText(const QString &str) +{ + mCustomWidget->setText(str); +} diff --git a/src/snippets/snippetcustomfileattachmentnamedialog.h b/src/snippets/snippetcustomfileattachmentnamedialog.h index 8766d3b..ec0663b 100644 --- a/src/snippets/snippetcustomfileattachmentnamedialog.h +++ b/src/snippets/snippetcustomfileattachmentnamedialog.h @@ -37,6 +37,8 @@ public: Q_REQUIRED_RESULT QString result() const; + void setText(const QString &str); + private: SnippetCustomFileAttachmentNameWidget *mCustomWidget = nullptr; }; diff --git a/src/snippets/snippetcustomfileattachmentnamewidget.cpp b/src/snippets/snippetcustomfileattachmentnamewidget.cpp index 692d1fd..e18ab51 100644 --- a/src/snippets/snippetcustomfileattachmentnamewidget.cpp +++ b/src/snippets/snippetcustomfileattachmentnamewidget.cpp @@ -18,9 +18,12 @@ */ #include "snippetcustomfileattachmentnamewidget.h" +#include +#include #include #include #include +#include using namespace MailCommon; SnippetCustomFileAttachmentNameWidget::SnippetCustomFileAttachmentNameWidget(QWidget *parent) : QWidget(parent) @@ -32,6 +35,15 @@ SnippetCustomFileAttachmentNameWidget::SnippetCustomFileAttachmentNameWidget(QWi mLineEdit = new QLineEdit(this); mLineEdit->setObjectName(QStringLiteral("mLineEdit")); mainLayout->addWidget(mLineEdit); + + mConvertMenu = new MessageComposer::ConvertSnippetVariableMenu(true, mLineEdit, this); + mConvertMenu->setObjectName(QStringLiteral("mConvertMenu")); + connect(mConvertMenu, &MessageComposer::ConvertSnippetVariableMenu::insertVariable, this, &SnippetCustomFileAttachmentNameWidget::insertVariable); + + QPushButton *selectVariable = new QPushButton(i18n("Variables"), this); + selectVariable->setObjectName(QStringLiteral("selectVariable")); + selectVariable->setMenu(mConvertMenu->menu()); + mainLayout->addWidget(selectVariable); } SnippetCustomFileAttachmentNameWidget::~SnippetCustomFileAttachmentNameWidget() @@ -39,8 +51,18 @@ SnippetCustomFileAttachmentNameWidget::~SnippetCustomFileAttachmentNameWidget() } +void SnippetCustomFileAttachmentNameWidget::insertVariable(MessageComposer::ConvertSnippetVariablesUtil::VariableType variable) +{ + mLineEdit->insert(MessageComposer::ConvertSnippetVariablesJob::convertVariables(nullptr, MessageComposer::ConvertSnippetVariablesUtil::snippetVariableFromEnum(variable))); +} + QString SnippetCustomFileAttachmentNameWidget::result() const { return mLineEdit->text(); } +void SnippetCustomFileAttachmentNameWidget::setText(const QString &str) +{ + mLineEdit->setText(str); +} + diff --git a/src/snippets/snippetcustomfileattachmentnamewidget.h b/src/snippets/snippetcustomfileattachmentnamewidget.h index 32751c7..5dbb968 100644 --- a/src/snippets/snippetcustomfileattachmentnamewidget.h +++ b/src/snippets/snippetcustomfileattachmentnamewidget.h @@ -22,8 +22,11 @@ #include #include "mailcommon_private_export.h" - +#include class QLineEdit; +namespace MessageComposer { +class ConvertSnippetVariableMenu; +} namespace MailCommon { class MAILCOMMON_TESTS_EXPORT SnippetCustomFileAttachmentNameWidget : public QWidget @@ -33,8 +36,11 @@ public: explicit SnippetCustomFileAttachmentNameWidget(QWidget *parent = nullptr); ~SnippetCustomFileAttachmentNameWidget(); Q_REQUIRED_RESULT QString result() const; + void setText(const QString &str); private: + void insertVariable(MessageComposer::ConvertSnippetVariablesUtil::VariableType variable); QLineEdit *mLineEdit = nullptr; + MessageComposer::ConvertSnippetVariableMenu *mConvertMenu = nullptr; }; } diff --git a/src/snippets/snippetselectattachmentwidget.cpp b/src/snippets/snippetselectattachmentwidget.cpp index 765a7fe..f0a4bfd 100644 --- a/src/snippets/snippetselectattachmentwidget.cpp +++ b/src/snippets/snippetselectattachmentwidget.cpp @@ -19,10 +19,12 @@ */ #include "snippetselectattachmentwidget.h" +#include "snippetcustomfileattachmentnamedialog.h" #include #include #include #include +#include using namespace MailCommon; SnippetSelectAttachmentWidget::SnippetSelectAttachmentWidget(QWidget *parent) @@ -73,6 +75,10 @@ void SnippetSelectorWidget::addNewEntry() QString SnippetSelectorWidget::customEntry(const QString &text) { - //TODO + QPointer dlg = new SnippetCustomFileAttachmentNameDialog(this); + dlg->setText(text); + if (dlg->exec()) { + return dlg->result(); + } return {}; } diff --git a/src/snippets/snippetwidget.cpp b/src/snippets/snippetwidget.cpp index e27241b..71eba70 100644 --- a/src/snippets/snippetwidget.cpp +++ b/src/snippets/snippetwidget.cpp @@ -51,7 +51,7 @@ SnippetWidget::SnippetWidget(QWidget *parent) d->mUi.setupUi(d->wdg); layout->addWidget(d->wdg); - MessageComposer::ConvertSnippetVariableMenu *variableMenu = new MessageComposer::ConvertSnippetVariableMenu(this, this); + MessageComposer::ConvertSnippetVariableMenu *variableMenu = new MessageComposer::ConvertSnippetVariableMenu(false, this, this); d->mUi.pushButtonVariables->setMenu(variableMenu->menu()); connect(variableMenu, &MessageComposer::ConvertSnippetVariableMenu::insertVariable, this, [this](MessageComposer::ConvertSnippetVariablesUtil::VariableType type) { d->mUi.snippetText->editor()->insertPlainText(MessageComposer::ConvertSnippetVariablesUtil::snippetVariableFromEnum(type) + QLatin1Char(' '));