From a4dc679e4c192fc6ff42bdae68f8cff850e8fb8d Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Mon, 28 Oct 2019 08:43:56 +0100 Subject: [PATCH] Allow to insert subject too as discussed with david --- CMakeLists.txt | 2 +- src/snippets/snippetsmanager.cpp | 29 ++++++++++++++++------------- src/snippets/snippetsmanager.h | 2 +- src/snippets/snippetsmodel.cpp | 3 ++- src/snippets/snippetsmodel.h | 2 +- src/snippets/snippettreeview.cpp | 2 +- src/snippets/snippettreeview.h | 2 +- 7 files changed, 23 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4bf5798..2f8cdd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5) -set(PIM_VERSION "5.12.49") +set(PIM_VERSION "5.12.50") project(mailcommon VERSION ${PIM_VERSION}) diff --git a/src/snippets/snippetsmanager.cpp b/src/snippets/snippetsmanager.cpp index a55ba17..04b2409 100644 --- a/src/snippets/snippetsmanager.cpp +++ b/src/snippets/snippetsmanager.cpp @@ -65,8 +65,8 @@ public: void slotAddNewDndSnippset(const QString &); - void updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text); - void initializeAction(const QString &newName, const QKeySequence &keySequence, const QString &text); + void updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject); + void initializeAction(const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject); void initializeActionCollection(); QString replaceVariables(const QString &text); @@ -173,7 +173,7 @@ void SnippetsManager::Private::createSnippet(const QString &text) mModel->setData(index, dlg->keyword(), SnippetsModel::KeywordRole); mModel->setData(index, dlg->subject(), SnippetsModel::SubjectRole); - Q_EMIT mModel->updateActionCollection(QString(), dlg->name(), dlg->keySequence(), dlg->text()); + Q_EMIT mModel->updateActionCollection(QString(), dlg->name(), dlg->keySequence(), dlg->text(), dlg->subject()); mDirty = true; save(); } @@ -229,7 +229,7 @@ void SnippetsManager::Private::editSnippet() mModel->setData(index, dlg->keyword(), SnippetsModel::KeywordRole); mModel->setData(index, dlg->subject(), SnippetsModel::SubjectRole); - Q_EMIT mModel->updateActionCollection(oldSnippetName, dlg->name(), dlg->keySequence(), dlg->text()); + Q_EMIT mModel->updateActionCollection(oldSnippetName, dlg->name(), dlg->keySequence(), dlg->text(), dlg->subject()); mDirty = true; save(); } @@ -254,7 +254,7 @@ void SnippetsManager::Private::deleteSnippet() mModel->removeRow(index.row(), currentGroupIndex()); - Q_EMIT mModel->updateActionCollection(snippetName, QString(), QKeySequence(), QString()); + Q_EMIT mModel->updateActionCollection(snippetName, QString(), QKeySequence(), QString(), QString()); mDirty = true; save(); } @@ -351,7 +351,8 @@ void SnippetsManager::Private::insertSelectedSnippet() } const QString text = replaceVariables(index.data(SnippetsModel::TextRole).toString()); - Q_EMIT q->insertPlainText(text); + const QString subject = replaceVariables(index.data(SnippetsModel::SubjectRole).toString()); + Q_EMIT q->insertSubjectAndPlainText(subject, text); } void SnippetsManager::Private::insertActionSnippet() @@ -362,7 +363,8 @@ void SnippetsManager::Private::insertActionSnippet() } const QString text = replaceVariables(action->property("snippetText").toString()); - Q_EMIT q->insertPlainText(text); + const QString subject = replaceVariables(action->property("snippetSubject").toString()); + Q_EMIT q->insertSubjectAndPlainText(subject, text); } void SnippetsManager::Private::initializeActionCollection() @@ -370,12 +372,12 @@ void SnippetsManager::Private::initializeActionCollection() if (mActionCollection) { const QVector infos = mModel->snippetsInfo(); for (const SnippetsInfo &info : infos) { - initializeAction(info.newName, info.keySequence, info.text); + initializeAction(info.newName, info.keySequence, info.text, info.subject); } } } -void SnippetsManager::Private::initializeAction(const QString &newName, const QKeySequence &keySequence, const QString &text) +void SnippetsManager::Private::initializeAction(const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject) { const QString actionName = i18nc("@action", "Snippet %1", newName); const QString normalizedName = QString(actionName).replace(QLatin1Char(' '), QLatin1Char('_')); @@ -386,11 +388,12 @@ void SnippetsManager::Private::initializeAction(const QString &newName, const QK insertActionSnippet(); }); action->setProperty("snippetText", text); + action->setProperty("snippetSubject", subject); action->setText(actionName); mActionCollection->setDefaultShortcut(action, keySequence); } -void SnippetsManager::Private::updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text) +void SnippetsManager::Private::updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject) { // remove previous action in case that the name changed if (!oldName.isEmpty() && mActionCollection) { @@ -404,7 +407,7 @@ void SnippetsManager::Private::updateActionCollection(const QString &oldName, co } if (!newName.isEmpty()) { - initializeAction(newName, keySequence, text); + initializeAction(newName, keySequence, text, subject); } } @@ -469,8 +472,8 @@ SnippetsManager::SnippetsManager(KActionCollection *actionCollection, QObject *p , d(new Private(this, parentWidget)) { d->mModel = SnippetsModel::instance(); - connect(d->mModel, &SnippetsModel::updateActionCollection, this, [this](const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text) { - d->updateActionCollection(oldName, newName, keySequence, text); + connect(d->mModel, &SnippetsModel::updateActionCollection, this, [this](const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject) { + d->updateActionCollection(oldName, newName, keySequence, text, subject); }); d->mSelectionModel = new QItemSelectionModel(d->mModel); d->mActionCollection = actionCollection; diff --git a/src/snippets/snippetsmanager.h b/src/snippets/snippetsmanager.h index a1e017e..af27ea6 100644 --- a/src/snippets/snippetsmanager.h +++ b/src/snippets/snippetsmanager.h @@ -107,7 +107,7 @@ public: Q_SIGNALS: void insertSnippet(); - void insertPlainText(const QString &snippetText); + void insertSubjectAndPlainText(const QString &snippetSubject, const QString &snippetText); private: //@cond PRIVATE diff --git a/src/snippets/snippetsmodel.cpp b/src/snippets/snippetsmodel.cpp index b1de0ef..2b612d7 100644 --- a/src/snippets/snippetsmodel.cpp +++ b/src/snippets/snippetsmodel.cpp @@ -552,7 +552,8 @@ void SnippetsModel::createSnippet(const QModelIndex &groupIndex, const QString & Q_EMIT updateActionCollection(QString(), snippetName, QKeySequence::fromString(snippetKeySequence), - snippetText); + snippetText, + snippetSubject); } void SnippetsModel::setSavedVariables(const QMap &savedVariables) diff --git a/src/snippets/snippetsmodel.h b/src/snippets/snippetsmodel.h index 88e8208..c27600e 100644 --- a/src/snippets/snippetsmodel.h +++ b/src/snippets/snippetsmodel.h @@ -92,7 +92,7 @@ protected: Q_SIGNALS: void dndDone(); void addNewDndSnippset(const QString &); - void updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text); + void updateActionCollection(const QString &oldName, const QString &newName, const QKeySequence &keySequence, const QString &text, const QString &subject); private: QModelIndex createGroup(const QString &groupName); diff --git a/src/snippets/snippettreeview.cpp b/src/snippets/snippettreeview.cpp index 66f74d5..8b1cf02 100644 --- a/src/snippets/snippettreeview.cpp +++ b/src/snippets/snippettreeview.cpp @@ -30,7 +30,7 @@ SnippetTreeView::SnippetTreeView(KActionCollection *actionCollection, QWidget *p setRootIsDecorated(true); setAlternatingRowColors(true); mSnippetsManager = new MailCommon::SnippetsManager(actionCollection, this, this); - connect(mSnippetsManager, &MailCommon::SnippetsManager::insertPlainText, this, &SnippetTreeView::insertSnippetText); + connect(mSnippetsManager, &MailCommon::SnippetsManager::insertSubjectAndPlainText, this, &SnippetTreeView::insertSubjectAndPlainText); setModel(mSnippetsManager->model()); setSelectionModel(mSnippetsManager->selectionModel()); diff --git a/src/snippets/snippettreeview.h b/src/snippets/snippettreeview.h index 528edb0..6130e6b 100644 --- a/src/snippets/snippettreeview.h +++ b/src/snippets/snippettreeview.h @@ -40,7 +40,7 @@ protected: void dropEvent(QDropEvent *) override; Q_SIGNALS: - void insertSnippetText(const QString &str); + void insertSubjectAndPlainText(const QString &subject, const QString &str); private: MailCommon::SnippetsManager *mSnippetsManager = nullptr;