Commit bf19abea authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Split filteractionmissingtemplatedialog

parent f3f3b5bd
......@@ -68,6 +68,7 @@ set(libmailcommon_filter_dialog
filter/dialog/filteractionmissingsoundurldialog.cpp
filter/dialog/filteractionmissingtagdialog.cpp
filter/dialog/filteractionmissingaccountdialog.cpp
filter/dialog/filteractionmissingtemplatedialog.cpp
)
......
......@@ -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}
)
......
......@@ -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();
}
}
......@@ -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 */
/*
Copyright (C) 2016 Laurent Montel <montel@kde.org>
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 <KComboBox>
#include <KConfigGroup>
#include <KLocalizedString>
#include <QDialogButtonBox>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
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();
}
}
/*
Copyright (C) 2016 Laurent Montel <montel@kde.org>
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 <QDialog>
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
......@@ -22,7 +22,7 @@
#include "kernel/mailkernel.h"
#include "util/mailutil.h"
#include "filter/dialog/filteractionmissingargumentdialog.h"
#include "filter/dialog/filteractionmissingtemplatedialog.h"
#include <PimCommon/MinimumComboBox>
#include <MessageComposer/MessageFactory>
......@@ -221,7 +221,7 @@ bool FilterActionForward::argsFromStringInteractive(const QString &argsStr, cons
currentTemplateList << templateName;
}
}
QPointer<FilterActionMissingTemplateDialog> dlg = new FilterActionMissingTemplateDialog(currentTemplateList, filterName);
QPointer<MailCommon::FilterActionMissingTemplateDialog> dlg = new MailCommon::FilterActionMissingTemplateDialog(currentTemplateList, filterName);
if (dlg->exec()) {
mTemplate = dlg->selectedTemplate();
needUpdate = true;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment