diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1ad43b7..8c39d11 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,7 +20,6 @@ set(libmailcommon_filter_SRCS filter/filteractions/filteractiondict.cpp filter/filteractions/filteractionexec.cpp filter/filteractions/filteractionforward.cpp - filter/dialog/filteractionmissingargumentdialog.cpp filter/filteractions/filteractionmove.cpp filter/filteractions/filteractionpipethrough.cpp filter/filteractions/filteractionplaysound.cpp @@ -59,11 +58,17 @@ set(libmailcommon_filter_SRCS filter/itemcontext.cpp filter/kmfilterdialog.cpp filter/mailfilter.cpp - filter/dialog/selectthunderbirdfilterfilesdialog.cpp - filter/dialog/selectthunderbirdfilterfileswidget.cpp filter/mdnadvicedialog.cpp ) +set(libmailcommon_filter_dialog + filter/dialog/selectthunderbirdfilterfilesdialog.cpp + filter/dialog/selectthunderbirdfilterfileswidget.cpp + filter/dialog/filteractionmissingargumentdialog.cpp + filter/dialog/filteractionmissingsoundurldialog.cpp + ) + + set(libmailcommon_invalidfilters filter/invalidfilters/invalidfilterdialog.cpp filter/invalidfilters/invalidfilterlistview.cpp @@ -154,6 +159,7 @@ set(libmailcommon_util_SRCS set(libmailcommon_SRCS kernel/mailkernel.cpp + ${libmailcommon_filter_dialog} ${libmailcommon_util_SRCS} ${libmailcommon_mdn_SRCS} ${libmailcommon_invalidfilters} diff --git a/src/filter/autotests/CMakeLists.txt b/src/filter/autotests/CMakeLists.txt index be297c2..d5a601d 100644 --- a/src/filter/autotests/CMakeLists.txt +++ b/src/filter/autotests/CMakeLists.txt @@ -111,7 +111,7 @@ add_mailcommon_filter_test(filteractionplaysoundtest ../filteractions/filteractionwithtest.cpp ../filteractions/filteractionplaysound.cpp ../soundtestwidget.cpp - ../dialog/filteractionmissingargumentdialog.cpp + ../dialog/filteractionmissingsoundurldialog.cpp ../kmfilteraccountlist.cpp ${filter_common_SRCS} ) diff --git a/src/filter/dialog/filteractionmissingargumentdialog.cpp b/src/filter/dialog/filteractionmissingargumentdialog.cpp index df0ca65..a3a82d6 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.cpp +++ b/src/filter/dialog/filteractionmissingargumentdialog.cpp @@ -546,65 +546,3 @@ void FilterActionMissingTagDialog::slotAddTag() delete dlg; } -FilterActionMissingSoundUrlDialog::FilterActionMissingSoundUrlDialog(const QString &filtername, - const QString &argStr, - QWidget *parent) - : QDialog(parent) -{ - setModal(true); - 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); - QPushButton *user1Button = new QPushButton; - buttonBox->addButton(user1Button, QDialogButtonBox::ActionRole); - connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingSoundUrlDialog::accept); - connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingSoundUrlDialog::reject); - mainLayout->addWidget(buttonBox); - okButton->setDefault(true); - setWindowTitle(i18n("Select sound")); - QVBoxLayout *lay = new QVBoxLayout(mainWidget); - QLabel *label = new QLabel(i18n("Sound file was \"%1\".", argStr)); - lay->addWidget(label); - - label = new QLabel(this); - label->setText(i18n("Sound file is missing. " - "Please select a sound to use with filter \"%1\"", - filtername)); - label->setWordWrap(true); - lay->addWidget(label); - mUrlWidget = new KUrlRequester(this); - lay->addWidget(mUrlWidget); - readConfig(); -} - -FilterActionMissingSoundUrlDialog::~FilterActionMissingSoundUrlDialog() -{ - writeConfig(); -} - -QString FilterActionMissingSoundUrlDialog::soundUrl() const -{ - return mUrlWidget->url().path(); -} - -void FilterActionMissingSoundUrlDialog::readConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingSoundUrlDialog"); - - const QSize size = group.readEntry("Size", QSize(500, 300)); - if (size.isValid()) { - resize(size); - } -} - -void FilterActionMissingSoundUrlDialog::writeConfig() -{ - KConfigGroup group(KernelIf->config(), "FilterActionMissingSoundUrlDialog"); - group.writeEntry("Size", size()); -} - diff --git a/src/filter/dialog/filteractionmissingargumentdialog.h b/src/filter/dialog/filteractionmissingargumentdialog.h index 02b6756..529b24e 100644 --- a/src/filter/dialog/filteractionmissingargumentdialog.h +++ b/src/filter/dialog/filteractionmissingargumentdialog.h @@ -172,22 +172,5 @@ private: }; QListWidget *mTagList; }; - -class FilterActionMissingSoundUrlDialog : public QDialog -{ - Q_OBJECT -public: - explicit FilterActionMissingSoundUrlDialog(const QString &filtername, - const QString &argStr, - QWidget *parent = Q_NULLPTR); - ~FilterActionMissingSoundUrlDialog(); - QString soundUrl() const; - -private: - void readConfig(); - void writeConfig(); - KUrlRequester *mUrlWidget; -}; - #endif /* FILTERACTIONMISSINGARGUMENTDIALOG_H */ diff --git a/src/filter/dialog/filteractionmissingsoundurldialog.cpp b/src/filter/dialog/filteractionmissingsoundurldialog.cpp new file mode 100644 index 0000000..29f264e --- /dev/null +++ b/src/filter/dialog/filteractionmissingsoundurldialog.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 "filteractionmissingsoundurldialog.h" +#include "kernel/mailkernel.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace MailCommon; + +FilterActionMissingSoundUrlDialog::FilterActionMissingSoundUrlDialog(const QString &filtername, + const QString &argStr, + QWidget *parent) + : QDialog(parent) +{ + setModal(true); + 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); + QPushButton *user1Button = new QPushButton; + buttonBox->addButton(user1Button, QDialogButtonBox::ActionRole); + connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingSoundUrlDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingSoundUrlDialog::reject); + mainLayout->addWidget(buttonBox); + okButton->setDefault(true); + setWindowTitle(i18n("Select sound")); + QVBoxLayout *lay = new QVBoxLayout(mainWidget); + QLabel *label = new QLabel(i18n("Sound file was \"%1\".", argStr)); + lay->addWidget(label); + + label = new QLabel(this); + label->setText(i18n("Sound file is missing. " + "Please select a sound to use with filter \"%1\"", + filtername)); + label->setWordWrap(true); + lay->addWidget(label); + mUrlWidget = new KUrlRequester(this); + lay->addWidget(mUrlWidget); + readConfig(); +} + +FilterActionMissingSoundUrlDialog::~FilterActionMissingSoundUrlDialog() +{ + writeConfig(); +} + +QString FilterActionMissingSoundUrlDialog::soundUrl() const +{ + return mUrlWidget->url().path(); +} + +void FilterActionMissingSoundUrlDialog::readConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingSoundUrlDialog"); + + const QSize size = group.readEntry("Size", QSize(500, 300)); + if (size.isValid()) { + resize(size); + } +} + +void FilterActionMissingSoundUrlDialog::writeConfig() +{ + KConfigGroup group(KernelIf->config(), "FilterActionMissingSoundUrlDialog"); + group.writeEntry("Size", size()); +} + diff --git a/src/filter/dialog/filteractionmissingsoundurldialog.h b/src/filter/dialog/filteractionmissingsoundurldialog.h new file mode 100644 index 0000000..b02bf0c --- /dev/null +++ b/src/filter/dialog/filteractionmissingsoundurldialog.h @@ -0,0 +1,44 @@ +/* + 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 FILTERACTIONMISSINGSOUNDURLDIALOG_H +#define FILTERACTIONMISSINGSOUNDURLDIALOG_H + +#include +class KUrlRequester; +namespace MailCommon +{ +class FilterActionMissingSoundUrlDialog : public QDialog +{ + Q_OBJECT +public: + explicit FilterActionMissingSoundUrlDialog(const QString &filtername, + const QString &argStr, + QWidget *parent = Q_NULLPTR); + ~FilterActionMissingSoundUrlDialog(); + QString soundUrl() const; + +private: + void readConfig(); + void writeConfig(); + KUrlRequester *mUrlWidget; +}; +} + +#endif // FILTERACTIONMISSINGSOUNDURLDIALOG_H diff --git a/src/filter/filteractions/filteractionplaysound.cpp b/src/filter/filteractions/filteractionplaysound.cpp index 67ab467..df5b535 100644 --- a/src/filter/filteractions/filteractionplaysound.cpp +++ b/src/filter/filteractions/filteractionplaysound.cpp @@ -19,7 +19,7 @@ #include "filteractionplaysound.h" -#include "filter/dialog/filteractionmissingargumentdialog.h" +#include "filter/dialog/filteractionmissingsoundurldialog.h" #include @@ -75,7 +75,7 @@ bool FilterActionPlaySound::argsFromStringInteractive(const QString &argsStr, co bool needUpdate = false; argsFromString(argsStr); if (!QFile(mParameter).exists()) { - QPointer dlg = new FilterActionMissingSoundUrlDialog(filterName, argsStr); + QPointer dlg = new MailCommon::FilterActionMissingSoundUrlDialog(filterName, argsStr); if (dlg->exec()) { mParameter = dlg->soundUrl(); needUpdate = true;