Extract filteractionmissingtransportdialog

wilder
Montel Laurent 10 years ago
parent bf19abea21
commit 55a238572c
  1. 1
      src/CMakeLists.txt
  2. 2
      src/filter/autotests/CMakeLists.txt
  3. 56
      src/filter/dialog/filteractionmissingargumentdialog.cpp
  4. 16
      src/filter/dialog/filteractionmissingargumentdialog.h
  5. 89
      src/filter/dialog/filteractionmissingtransportdialog.cpp
  6. 47
      src/filter/dialog/filteractionmissingtransportdialog.h
  7. 4
      src/filter/filteractions/filteractionsettransport.cpp

@ -69,6 +69,7 @@ set(libmailcommon_filter_dialog
filter/dialog/filteractionmissingtagdialog.cpp
filter/dialog/filteractionmissingaccountdialog.cpp
filter/dialog/filteractionmissingtemplatedialog.cpp
filter/dialog/filteractionmissingtransportdialog.cpp
)

@ -209,7 +209,7 @@ add_mailcommon_filter_test(filteractionsendreceipttest
add_mailcommon_filter_test(filteractionsettransporttest
filteractionsettransporttest.cpp
../filteractions/filteractionsettransport.cpp
../dialog/filteractionmissingargumentdialog.cpp
../dialog/filteractionmissingtransportdialog.cpp
../kmfilteraccountlist.cpp
${filter_common_SRCS}
)

@ -260,59 +260,3 @@ int FilterActionMissingIdentityDialog::selectedIdentity() const
return mComboBoxIdentity->currentIdentity();
}
FilterActionMissingTransportDialog::FilterActionMissingTransportDialog(const QString &filtername,
QWidget *parent)
: QDialog(parent)
{
setModal(true);
setWindowTitle(i18n("Select Transport"));
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, &FilterActionMissingTransportDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingTransportDialog::reject);
mainLayout->addWidget(buttonBox);
okButton->setDefault(true);
QVBoxLayout *lay = new QVBoxLayout(mainWidget);
QLabel *label = new QLabel(this);
label->setText(i18n("Filter transport is missing. "
"Please select a transport to use with filter \"%1\"",
filtername));
label->setWordWrap(true);
lay->addWidget(label);
mComboBoxTransport = new MailTransport::TransportComboBox(this);
lay->addWidget(mComboBoxTransport);
readConfig();
}
FilterActionMissingTransportDialog::~FilterActionMissingTransportDialog()
{
writeConfig();
}
void FilterActionMissingTransportDialog::readConfig()
{
KConfigGroup group(KernelIf->config(), "FilterActionMissingTransportDialog");
const QSize size = group.readEntry("Size", QSize(500, 300));
if (size.isValid()) {
resize(size);
}
}
void FilterActionMissingTransportDialog::writeConfig()
{
KConfigGroup group(KernelIf->config(), "FilterActionMissingTransportDialog");
group.writeEntry("Size", size());
}
int FilterActionMissingTransportDialog::selectedTransport() const
{
return mComboBoxTransport->currentTransportId();
}

@ -101,21 +101,5 @@ private:
KIdentityManagement::IdentityCombo *mComboBoxIdentity;
};
class FilterActionMissingTransportDialog : public QDialog
{
Q_OBJECT
public:
explicit FilterActionMissingTransportDialog(const QString &filtername,
QWidget *parent = Q_NULLPTR);
~FilterActionMissingTransportDialog();
int selectedTransport() const;
private:
void writeConfig();
void readConfig();
MailTransport::TransportComboBox *mComboBoxTransport;
};
#endif /* FILTERACTIONMISSINGARGUMENTDIALOG_H */

@ -0,0 +1,89 @@
/*
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 "filteractionmissingtransportdialog.h"
#include "kernel/mailkernel.h"
#include <KLocalizedString>
#include <QDialogButtonBox>
#include <QLabel>
#include <QVBoxLayout>
#include <QPushButton>
#include <MailTransport/TransportComboBox>
using namespace MailCommon;
FilterActionMissingTransportDialog::FilterActionMissingTransportDialog(const QString &filtername,
QWidget *parent)
: QDialog(parent)
{
setModal(true);
setWindowTitle(i18n("Select Transport"));
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, &FilterActionMissingTransportDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingTransportDialog::reject);
mainLayout->addWidget(buttonBox);
okButton->setDefault(true);
QVBoxLayout *lay = new QVBoxLayout(mainWidget);
QLabel *label = new QLabel(this);
label->setText(i18n("Filter transport is missing. "
"Please select a transport to use with filter \"%1\"",
filtername));
label->setWordWrap(true);
lay->addWidget(label);
mComboBoxTransport = new MailTransport::TransportComboBox(this);
lay->addWidget(mComboBoxTransport);
readConfig();
}
FilterActionMissingTransportDialog::~FilterActionMissingTransportDialog()
{
writeConfig();
}
void FilterActionMissingTransportDialog::readConfig()
{
KConfigGroup group(KernelIf->config(), "FilterActionMissingTransportDialog");
const QSize size = group.readEntry("Size", QSize(500, 300));
if (size.isValid()) {
resize(size);
}
}
void FilterActionMissingTransportDialog::writeConfig()
{
KConfigGroup group(KernelIf->config(), "FilterActionMissingTransportDialog");
group.writeEntry("Size", size());
}
int FilterActionMissingTransportDialog::selectedTransport() const
{
return mComboBoxTransport->currentTransportId();
}

@ -0,0 +1,47 @@
/*
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 FILTERACTIONMISSINGTRANSPORTDIALOG_H
#define FILTERACTIONMISSINGTRANSPORTDIALOG_H
#include <QDialog>
namespace MailTransport
{
class TransportComboBox;
}
namespace MailCommon
{
class FilterActionMissingTransportDialog : public QDialog
{
Q_OBJECT
public:
explicit FilterActionMissingTransportDialog(const QString &filtername,
QWidget *parent = Q_NULLPTR);
~FilterActionMissingTransportDialog();
int selectedTransport() const;
private:
void writeConfig();
void readConfig();
MailTransport::TransportComboBox *mComboBoxTransport;
};
}
#endif // FILTERACTIONMISSINGTRANSPORTDIALOG_H

@ -19,7 +19,7 @@
#include "filteractionsettransport.h"
#include "filter/dialog/filteractionmissingargumentdialog.h"
#include "filter/dialog/filteractionmissingtransportdialog.h"
#include <KLocalizedString>
#include <MailTransport/Transport>
@ -57,7 +57,7 @@ bool FilterActionSetTransport::argsFromStringInteractive(const QString &argsStr,
bool needUpdate = false;
argsFromString(argsStr);
if (!MailTransport::TransportManager::self()->transportById(mParameter, false)) {
QPointer<FilterActionMissingTransportDialog> dlg = new FilterActionMissingTransportDialog(filterName);
QPointer<MailCommon::FilterActionMissingTransportDialog> dlg = new MailCommon::FilterActionMissingTransportDialog(filterName);
if (dlg->exec()) {
mParameter = dlg->selectedTransport();
needUpdate = true;

Loading…
Cancel
Save