From f3f3b5bdacb8d2070a7b372018a1fa14a67af414 Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Tue, 23 Aug 2016 13:38:27 +0200 Subject: [PATCH] Move in own file --- src/CMakeLists.txt | 1 + .../filteractionmissingaccountdialog.cpp | 114 ++++++++++++++++++ .../dialog/filteractionmissingaccountdialog.h | 45 +++++++ .../filteractionmissingargumentdialog.cpp | 80 ------------ .../filteractionmissingargumentdialog.h | 16 --- src/filter/mailfilter.cpp | 6 +- 6 files changed, 163 insertions(+), 99 deletions(-) create mode 100644 src/filter/dialog/filteractionmissingaccountdialog.cpp create mode 100644 src/filter/dialog/filteractionmissingaccountdialog.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c5c63c1..993b8dd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -67,6 +67,7 @@ set(libmailcommon_filter_dialog filter/dialog/filteractionmissingargumentdialog.cpp filter/dialog/filteractionmissingsoundurldialog.cpp filter/dialog/filteractionmissingtagdialog.cpp + filter/dialog/filteractionmissingaccountdialog.cpp ) diff --git a/src/filter/dialog/filteractionmissingaccountdialog.cpp b/src/filter/dialog/filteractionmissingaccountdialog.cpp new file mode 100644 index 0000000..5969908 --- /dev/null +++ b/src/filter/dialog/filteractionmissingaccountdialog.cpp @@ -0,0 +1,114 @@ +/* + 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 "filteractionmissingaccountdialog.h" +#include "filter/kmfilteraccountlist.h" +#include "kernel/mailkernel.h" +#include "util/mailutil.h" + +#include + +#include +#include +#include +#include + +using namespace MailCommon; + +FilterActionMissingAccountDialog::FilterActionMissingAccountDialog(const QStringList &lstAccount, + const QString &filtername, + QWidget *parent) + : QDialog(parent) +{ + setModal(true); + setWindowTitle(i18n("Select Account")); + 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, &FilterActionMissingAccountDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingAccountDialog::reject); + mainLayout->addWidget(buttonBox); + okButton->setDefault(true); + QVBoxLayout *lay = new QVBoxLayout(mainWidget); + QLabel *label = new QLabel(this); + label->setText(i18n("Filter account is missing. " + "Please select account to use with filter \"%1\"", + filtername)); + label->setWordWrap(true); + lay->addWidget(label); + mAccountList = new MailCommon::KMFilterAccountList(this); + mAccountList->applyOnAccount(lstAccount); + lay->addWidget(mAccountList); + readConfig(); +} + +FilterActionMissingAccountDialog::~FilterActionMissingAccountDialog() +{ + writeConfig(); +} + +void FilterActionMissingAccountDialog::readConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingAccountDialog"); + + const QSize size = group.readEntry("Size", QSize(500, 300)); + if (size.isValid()) { + resize(size); + } +} + +void FilterActionMissingAccountDialog::writeConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingAccountDialog"); + group.writeEntry("Size", size()); +} + +QStringList FilterActionMissingAccountDialog::selectedAccount() const +{ + return mAccountList->selectedAccount(); +} + +bool FilterActionMissingAccountDialog::allAccountExist(const QStringList &lst) +{ + const Akonadi::AgentInstance::List lstAgent = MailCommon::Util::agentInstances(); + + const int numberOfAccount(lst.count()); + const int numberOfAgent(lstAgent.count()); + + for (int i = 0; i < numberOfAccount; ++i) { + bool found = false; + const QString accountName(lst.at(i)); + for (int j = 0; j < numberOfAgent; ++j) { + if (lstAgent.at(j).identifier() == accountName) { + found = true; + break; + } + } + if (!found) { + return false; + } + } + return true; +} diff --git a/src/filter/dialog/filteractionmissingaccountdialog.h b/src/filter/dialog/filteractionmissingaccountdialog.h new file mode 100644 index 0000000..a1bcaaf --- /dev/null +++ b/src/filter/dialog/filteractionmissingaccountdialog.h @@ -0,0 +1,45 @@ +/* + 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 FILTERACTIONMISSINGACCOUNTDIALOG_H +#define FILTERACTIONMISSINGACCOUNTDIALOG_H + +#include +namespace MailCommon +{ +class KMFilterAccountList; +class FilterActionMissingAccountDialog : public QDialog +{ + Q_OBJECT +public: + explicit FilterActionMissingAccountDialog(const QStringList &lstAccount, + const QString &filtername, + QWidget *parent = Q_NULLPTR); + ~FilterActionMissingAccountDialog(); + QStringList selectedAccount() const; + static bool allAccountExist(const QStringList &lst); + +private: + void readConfig(); + void writeConfig(); + MailCommon::KMFilterAccountList *mAccountList; +}; +} +#endif // FILTERACTIONMISSINGACCOUNTDIALOG_H diff --git a/src/filter/dialog/filteractionmissingargumentdialog.cpp b/src/filter/dialog/filteractionmissingargumentdialog.cpp index 1e711e3..691147c 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.cpp +++ b/src/filter/dialog/filteractionmissingargumentdialog.cpp @@ -377,83 +377,3 @@ QString FilterActionMissingTemplateDialog::selectedTemplate() const } } -FilterActionMissingAccountDialog::FilterActionMissingAccountDialog(const QStringList &lstAccount, - const QString &filtername, - QWidget *parent) - : QDialog(parent) -{ - setModal(true); - setWindowTitle(i18n("Select Account")); - QVBoxLayout *mainLayout = new QVBoxLayout(this); - QWidget *mainWidget = new QWidget(this); - mainLayout->addWidget(mainWidget); - - QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); - okButton->setDefault(true); - okButton->setShortcut(Qt::CTRL | Qt::Key_Return); - connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingAccountDialog::accept); - connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingAccountDialog::reject); - mainLayout->addWidget(buttonBox); - okButton->setDefault(true); - QVBoxLayout *lay = new QVBoxLayout(mainWidget); - QLabel *label = new QLabel(this); - label->setText(i18n("Filter account is missing. " - "Please select account to use with filter \"%1\"", - filtername)); - label->setWordWrap(true); - lay->addWidget(label); - mAccountList = new MailCommon::KMFilterAccountList(this); - mAccountList->applyOnAccount(lstAccount); - lay->addWidget(mAccountList); - readConfig(); -} - -FilterActionMissingAccountDialog::~FilterActionMissingAccountDialog() -{ - writeConfig(); -} - -void FilterActionMissingAccountDialog::readConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingAccountDialog"); - - const QSize size = group.readEntry("Size", QSize(500, 300)); - if (size.isValid()) { - resize(size); - } -} - -void FilterActionMissingAccountDialog::writeConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingAccountDialog"); - group.writeEntry("Size", size()); -} - -QStringList FilterActionMissingAccountDialog::selectedAccount() const -{ - return mAccountList->selectedAccount(); -} - -bool FilterActionMissingAccountDialog::allAccountExist(const QStringList &lst) -{ - const Akonadi::AgentInstance::List lstAgent = MailCommon::Util::agentInstances(); - - const int numberOfAccount(lst.count()); - const int numberOfAgent(lstAgent.count()); - - for (int i = 0; i < numberOfAccount; ++i) { - bool found = false; - const QString accountName(lst.at(i)); - for (int j = 0; j < numberOfAgent; ++j) { - if (lstAgent.at(j).identifier() == accountName) { - found = true; - break; - } - } - if (!found) { - return false; - } - } - return true; -} diff --git a/src/filter/dialog/filteractionmissingargumentdialog.h b/src/filter/dialog/filteractionmissingargumentdialog.h index 5c3edd4..4cf5b89 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.h +++ b/src/filter/dialog/filteractionmissingargumentdialog.h @@ -132,22 +132,6 @@ private: KComboBox *mComboBoxTemplate; }; -class FilterActionMissingAccountDialog : public QDialog -{ - Q_OBJECT -public: - explicit FilterActionMissingAccountDialog(const QStringList &lstAccount, - const QString &filtername, - QWidget *parent = Q_NULLPTR); - ~FilterActionMissingAccountDialog(); - QStringList selectedAccount() const; - static bool allAccountExist(const QStringList &lst); - -private: - void readConfig(); - void writeConfig(); - MailCommon::KMFilterAccountList *mAccountList; -}; #endif /* FILTERACTIONMISSINGARGUMENTDIALOG_H */ diff --git a/src/filter/mailfilter.cpp b/src/filter/mailfilter.cpp index 862ac1d..7dfd944 100644 --- a/src/filter/mailfilter.cpp +++ b/src/filter/mailfilter.cpp @@ -27,7 +27,7 @@ #include "filteractions/filteractiondict.h" #include "filtermanager.h" #include "filterlog.h" -#include "dialog/filteractionmissingargumentdialog.h" +#include "dialog/filteractionmissingaccountdialog.h" using MailCommon::FilterLog; #include "PimCommon/PimUtil" @@ -470,8 +470,8 @@ bool MailFilter::readConfig(const KConfigGroup &config, bool interactive) mAccounts = config.readEntry("accounts-set", QStringList()); if (!mAccounts.isEmpty() && interactive) { - if (!FilterActionMissingAccountDialog::allAccountExist(mAccounts)) { - FilterActionMissingAccountDialog *dlg = new FilterActionMissingAccountDialog(mAccounts, name()); + if (!MailCommon::FilterActionMissingAccountDialog::allAccountExist(mAccounts)) { + MailCommon::FilterActionMissingAccountDialog *dlg = new MailCommon::FilterActionMissingAccountDialog(mAccounts, name()); if (dlg->exec()) { mAccounts = dlg->selectedAccount(); needUpdate = true;