From bf19abea21d5f769786974fb7fbfb82c065fc772 Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Tue, 23 Aug 2016 13:42:59 +0200 Subject: [PATCH] Split filteractionmissingtemplatedialog --- src/CMakeLists.txt | 1 + src/filter/autotests/CMakeLists.txt | 2 +- .../filteractionmissingargumentdialog.cpp | 61 ------------ .../filteractionmissingargumentdialog.h | 16 ---- .../filteractionmissingtemplatedialog.cpp | 94 +++++++++++++++++++ .../filteractionmissingtemplatedialog.h | 43 +++++++++ .../filteractions/filteractionforward.cpp | 4 +- 7 files changed, 141 insertions(+), 80 deletions(-) create mode 100644 src/filter/dialog/filteractionmissingtemplatedialog.cpp create mode 100644 src/filter/dialog/filteractionmissingtemplatedialog.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 993b8dd..7c55cbf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -68,6 +68,7 @@ set(libmailcommon_filter_dialog filter/dialog/filteractionmissingsoundurldialog.cpp filter/dialog/filteractionmissingtagdialog.cpp filter/dialog/filteractionmissingaccountdialog.cpp + filter/dialog/filteractionmissingtemplatedialog.cpp ) diff --git a/src/filter/autotests/CMakeLists.txt b/src/filter/autotests/CMakeLists.txt index d5a601d..d04e373 100644 --- a/src/filter/autotests/CMakeLists.txt +++ b/src/filter/autotests/CMakeLists.txt @@ -166,7 +166,7 @@ add_mailcommon_filter_test(filteractionforwardtest ../filteractions/filteractionforward.cpp ../filteractions/filteractionwithaddress.cpp ../filteractions/filteractionwithstring.cpp - ../dialog/filteractionmissingargumentdialog.cpp + ../dialog/filteractionmissingtemplatedialog.cpp ../kmfilteraccountlist.cpp ${filter_common_SRCS} ) diff --git a/src/filter/dialog/filteractionmissingargumentdialog.cpp b/src/filter/dialog/filteractionmissingargumentdialog.cpp index 691147c..af743cf 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.cpp +++ b/src/filter/dialog/filteractionmissingargumentdialog.cpp @@ -316,64 +316,3 @@ int FilterActionMissingTransportDialog::selectedTransport() const return mComboBoxTransport->currentTransportId(); } -FilterActionMissingTemplateDialog::FilterActionMissingTemplateDialog( - const QStringList &templateList, const QString &filtername, QWidget *parent) - : QDialog(parent) -{ - setModal(true); - setWindowTitle(i18n("Select Template")); - QVBoxLayout *mainLayout = new QVBoxLayout(this); - QWidget *mainWidget = new QWidget(this); - mainLayout->addWidget(mainWidget); - - QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); - QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); - okButton->setDefault(true); - okButton->setShortcut(Qt::CTRL | Qt::Key_Return); - connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingTemplateDialog::accept); - connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingTemplateDialog::reject); - mainLayout->addWidget(buttonBox); - okButton->setDefault(true); - QVBoxLayout *lay = new QVBoxLayout(mainWidget); - QLabel *label = new QLabel(this); - label->setText(i18n("Filter template is missing. " - "Please select a template to use with filter \"%1\"", - filtername)); - label->setWordWrap(true); - lay->addWidget(label); - mComboBoxTemplate = new KComboBox(this); - mComboBoxTemplate->addItems(templateList); - lay->addWidget(mComboBoxTemplate); - readConfig(); -} - -FilterActionMissingTemplateDialog::~FilterActionMissingTemplateDialog() -{ - writeConfig(); -} - -void FilterActionMissingTemplateDialog::readConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingTemplateDialog"); - - const QSize size = group.readEntry("Size", QSize(500, 300)); - if (size.isValid()) { - resize(size); - } -} - -void FilterActionMissingTemplateDialog::writeConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingTemplateDialog"); - group.writeEntry("Size", size()); -} - -QString FilterActionMissingTemplateDialog::selectedTemplate() const -{ - if (mComboBoxTemplate->currentIndex() == 0) { - return QString(); - } else { - return mComboBoxTemplate->currentText(); - } -} - diff --git a/src/filter/dialog/filteractionmissingargumentdialog.h b/src/filter/dialog/filteractionmissingargumentdialog.h index 4cf5b89..c40c349 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.h +++ b/src/filter/dialog/filteractionmissingargumentdialog.h @@ -116,22 +116,6 @@ private: MailTransport::TransportComboBox *mComboBoxTransport; }; -class FilterActionMissingTemplateDialog : public QDialog -{ - Q_OBJECT -public: - explicit FilterActionMissingTemplateDialog(const QStringList &templateList, - const QString &filtername, - QWidget *parent = Q_NULLPTR); - ~FilterActionMissingTemplateDialog(); - QString selectedTemplate() const; - -private: - void readConfig(); - void writeConfig(); - KComboBox *mComboBoxTemplate; -}; - #endif /* FILTERACTIONMISSINGARGUMENTDIALOG_H */ diff --git a/src/filter/dialog/filteractionmissingtemplatedialog.cpp b/src/filter/dialog/filteractionmissingtemplatedialog.cpp new file mode 100644 index 0000000..e52602e --- /dev/null +++ b/src/filter/dialog/filteractionmissingtemplatedialog.cpp @@ -0,0 +1,94 @@ +/* + Copyright (C) 2016 Laurent Montel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "filteractionmissingtemplatedialog.h" +#include "kernel/mailkernel.h" + +#include +#include +#include + +#include +#include +#include +#include + +using namespace MailCommon; + +FilterActionMissingTemplateDialog::FilterActionMissingTemplateDialog( + const QStringList &templateList, const QString &filtername, QWidget *parent) + : QDialog(parent) +{ + setModal(true); + setWindowTitle(i18n("Select Template")); + QVBoxLayout *mainLayout = new QVBoxLayout(this); + QWidget *mainWidget = new QWidget(this); + mainLayout->addWidget(mainWidget); + + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); + okButton->setDefault(true); + okButton->setShortcut(Qt::CTRL | Qt::Key_Return); + connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingTemplateDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingTemplateDialog::reject); + mainLayout->addWidget(buttonBox); + okButton->setDefault(true); + QVBoxLayout *lay = new QVBoxLayout(mainWidget); + QLabel *label = new QLabel(this); + label->setText(i18n("Filter template is missing. " + "Please select a template to use with filter \"%1\"", + filtername)); + label->setWordWrap(true); + lay->addWidget(label); + mComboBoxTemplate = new KComboBox(this); + mComboBoxTemplate->addItems(templateList); + lay->addWidget(mComboBoxTemplate); + readConfig(); +} + +FilterActionMissingTemplateDialog::~FilterActionMissingTemplateDialog() +{ + writeConfig(); +} + +void FilterActionMissingTemplateDialog::readConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingTemplateDialog"); + + const QSize size = group.readEntry("Size", QSize(500, 300)); + if (size.isValid()) { + resize(size); + } +} + +void FilterActionMissingTemplateDialog::writeConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingTemplateDialog"); + group.writeEntry("Size", size()); +} + +QString FilterActionMissingTemplateDialog::selectedTemplate() const +{ + if (mComboBoxTemplate->currentIndex() == 0) { + return QString(); + } else { + return mComboBoxTemplate->currentText(); + } +} + diff --git a/src/filter/dialog/filteractionmissingtemplatedialog.h b/src/filter/dialog/filteractionmissingtemplatedialog.h new file mode 100644 index 0000000..a839929 --- /dev/null +++ b/src/filter/dialog/filteractionmissingtemplatedialog.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2016 Laurent Montel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef FILTERACTIONMISSINGTEMPLATEDIALOG_H +#define FILTERACTIONMISSINGTEMPLATEDIALOG_H + +#include + +class KComboBox; +namespace MailCommon { +class FilterActionMissingTemplateDialog : public QDialog +{ + Q_OBJECT +public: + explicit FilterActionMissingTemplateDialog(const QStringList &templateList, + const QString &filtername, + QWidget *parent = Q_NULLPTR); + ~FilterActionMissingTemplateDialog(); + QString selectedTemplate() const; + +private: + void readConfig(); + void writeConfig(); + KComboBox *mComboBoxTemplate; +}; +} +#endif // FILTERACTIONMISSINGTEMPLATEDIALOG_H diff --git a/src/filter/filteractions/filteractionforward.cpp b/src/filter/filteractions/filteractionforward.cpp index 1888e87..641b356 100644 --- a/src/filter/filteractions/filteractionforward.cpp +++ b/src/filter/filteractions/filteractionforward.cpp @@ -22,7 +22,7 @@ #include "kernel/mailkernel.h" #include "util/mailutil.h" -#include "filter/dialog/filteractionmissingargumentdialog.h" +#include "filter/dialog/filteractionmissingtemplatedialog.h" #include #include @@ -221,7 +221,7 @@ bool FilterActionForward::argsFromStringInteractive(const QString &argsStr, cons currentTemplateList << templateName; } } - QPointer dlg = new FilterActionMissingTemplateDialog(currentTemplateList, filterName); + QPointer dlg = new MailCommon::FilterActionMissingTemplateDialog(currentTemplateList, filterName); if (dlg->exec()) { mTemplate = dlg->selectedTemplate(); needUpdate = true;