[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [mailcommon] src: Add filterconverttosievepurposemenuwidget
From: Laurent Montel <null () kde ! org>
Date: 2018-09-28 6:16:10
Message-ID: E1g5m4Q-0002uZ-6C () code ! kde ! org
[Download RAW message or body]
Git commit 66db2c4955cf8d31bb47bb8503a399fd8fce882d by Laurent Montel.
Committed on 28/09/2018 at 06:15.
Pushed by mlaurent into branch 'master'.
Add filterconverttosievepurposemenuwidget
M +1 -0 src/CMakeLists.txt
M +1 -0 src/filter/autotests/CMakeLists.txt
A +43 -0 src/filter/filterconverter/filterconverttosievepurposemenuwidget.cpp \
[License: LGPL (v2+)] A +40 -0 \
src/filter/filterconverter/filterconverttosievepurposemenuwidget.h [License: LGPL \
(v2+)] M +12 -57 src/filter/filterconverter/filterconverttosieveresultdialog.cpp
M +0 -9 src/filter/filterconverter/filterconverttosieveresultdialog.h
https://commits.kde.org/mailcommon/66db2c4955cf8d31bb47bb8503a399fd8fce882d
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8555a25..07bbed5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -14,6 +14,7 @@ set(libmailcommon_filter_SRCS
filter/filterselectiondialog.cpp
filter/filterconverter/filterconverttosieve.cpp
filter/filterconverter/filterconverttosieveresultdialog.cpp
+ filter/filterconverter/filterconverttosievepurposemenuwidget.cpp
filter/filteractions/filteraction.cpp
filter/filteractions/filteractionaddheader.cpp
filter/filteractions/filteractionaddtag.cpp
diff --git a/src/filter/autotests/CMakeLists.txt \
b/src/filter/autotests/CMakeLists.txt index 992db45..2ca1103 100644
--- a/src/filter/autotests/CMakeLists.txt
+++ b/src/filter/autotests/CMakeLists.txt
@@ -235,6 +235,7 @@ add_mailcommon_filter_test(filteractionsettransporttest
add_mailcommon_filter_test(filterconverttosieveresultdialog
filterconverttosieveresultdialogtest.cpp
../filterconverter/filterconverttosieveresultdialog.cpp
+ ../filterconverter/filterconverttosievepurposemenuwidget.cpp
${filter_common_SRCS}
)
diff --git a/src/filter/filterconverter/filterconverttosievepurposemenuwidget.cpp \
b/src/filter/filterconverter/filterconverttosievepurposemenuwidget.cpp new file mode \
100644 index 0000000..45be5bb
--- /dev/null
+++ b/src/filter/filterconverter/filterconverttosievepurposemenuwidget.cpp
@@ -0,0 +1,43 @@
+/*
+ Copyright (C) 2018 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 "filterconverttosievepurposemenuwidget.h"
+#include <KPIMTextEdit/PlainTextEditor>
+
+FilterconverttosievePurposeMenuWidget::FilterconverttosievePurposeMenuWidget(QWidget \
*parentWidget, QObject *parent) + : PimCommon::PurposeMenuWidget(parentWidget, \
parent) +{
+
+}
+
+FilterconverttosievePurposeMenuWidget::~FilterconverttosievePurposeMenuWidget()
+{
+}
+
+QByteArray FilterconverttosievePurposeMenuWidget::text()
+{
+ if (mEditor) {
+ return mEditor->toPlainText().toUtf8();
+ }
+ return {};
+}
+
+void FilterconverttosievePurposeMenuWidget::setEditorWidget(KPIMTextEdit::PlainTextEditor \
*editor) +{
+ mEditor = editor;
+}
diff --git a/src/filter/filterconverter/filterconverttosievepurposemenuwidget.h \
b/src/filter/filterconverter/filterconverttosievepurposemenuwidget.h new file mode \
100644 index 0000000..145d489
--- /dev/null
+++ b/src/filter/filterconverter/filterconverttosievepurposemenuwidget.h
@@ -0,0 +1,40 @@
+/*
+ Copyright (C) 2018 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 FILTERCONVERTTOSIEVEPURPOSEMENUWIDGET_H
+#define FILTERCONVERTTOSIEVEPURPOSEMENUWIDGET_H
+
+#include <PimCommon/PurposeMenuWidget>
+namespace KPIMTextEdit {
+class PlainTextEditor;
+}
+class FilterconverttosievePurposeMenuWidget : public PimCommon::PurposeMenuWidget
+{
+ Q_OBJECT
+public:
+ explicit FilterconverttosievePurposeMenuWidget(QWidget *parentWidget, QObject \
*parent = nullptr); + ~FilterconverttosievePurposeMenuWidget() override;
+
+ QByteArray text() override;
+ void setEditorWidget(KPIMTextEdit::PlainTextEditor *editor);
+private:
+ KPIMTextEdit::PlainTextEditor *mEditor = nullptr;
+};
+
+#endif // FILTERCONVERTTOSIEVEPURPOSEMENUWIDGET_H
diff --git a/src/filter/filterconverter/filterconverttosieveresultdialog.cpp \
b/src/filter/filterconverter/filterconverttosieveresultdialog.cpp index \
7c22a1b..4e74528 100644
--- a/src/filter/filterconverter/filterconverttosieveresultdialog.cpp
+++ b/src/filter/filterconverter/filterconverttosieveresultdialog.cpp
@@ -19,13 +19,7 @@
#include "kpimtextedit/plaintexteditor.h"
#include "kpimtextedit/plaintexteditorwidget.h"
#include <PimCommon/PimUtil>
-
-#ifdef KF5_USE_PURPOSE
-#include <Purpose/AlternativesModel>
-#include <PurposeWidgets/Menu>
-#include <QJsonArray>
-#endif
-
+#include "filterconverttosievepurposemenuwidget.h"
#include <KLocalizedString>
#include <KSyntaxHighlighting/Definition>
@@ -58,18 +52,6 @@ FilterConvertToSieveResultDialog::FilterConvertToSieveResultDialog(QWidget \
*pare setModal(true);
connect(saveButton, &QPushButton::clicked, this, \
&FilterConvertToSieveResultDialog::slotSave);
-#ifdef KF5_USE_PURPOSE
- QPushButton *mShareButton = new QPushButton(i18n("Share..."), this);
- mShareMenu = new Purpose::Menu(this);
- mShareMenu->model()->setPluginType(QStringLiteral("Export"));
- connect(mShareMenu, &Purpose::Menu::aboutToShow, this, \
&FilterConvertToSieveResultDialog::slotInitializeShareMenu);
- mShareButton->setMenu(mShareMenu);
- mShareButton->setIcon( QIcon::fromTheme(QStringLiteral("document-share")));
- connect(mShareMenu, &Purpose::Menu::finished, this, \
&FilterConvertToSieveResultDialog::slotShareActionFinished);
- buttonBox->addButton(mShareButton, QDialogButtonBox::ActionRole);
-#endif
-
-
mEditor = new KPIMTextEdit::PlainTextEditorWidget;
mEditor->editor()->setSpellCheckingSupport(false);
mEditor->setObjectName(QStringLiteral("editor"));
@@ -81,50 +63,23 @@ FilterConvertToSieveResultDialog::FilterConvertToSieveResultDialog(QWidget \
*pare topLayout->addWidget(mEditor);
topLayout->addWidget(buttonBox);
+ FilterconverttosievePurposeMenuWidget *purposeMenu = new \
FilterconverttosievePurposeMenuWidget(this, this); + if (purposeMenu->menu()) {
+ QPushButton *mShareButton = new QPushButton(i18n("Share..."), this);
+ mShareButton->setMenu(purposeMenu->menu());
+ mShareButton->setIcon(QIcon::fromTheme(QStringLiteral("document-share")));
+ purposeMenu->setEditorWidget(mEditor->editor());
+ buttonBox->addButton(mShareButton, QDialogButtonBox::ActionRole);
+ } else {
+ delete purposeMenu;
+ }
+
readConfig();
}
FilterConvertToSieveResultDialog::~FilterConvertToSieveResultDialog()
{
writeConfig();
-#ifdef KF5_USE_PURPOSE
- delete mTemporaryShareFile;
-#endif
-}
-
-void FilterConvertToSieveResultDialog::slotInitializeShareMenu()
-{
-#ifdef KF5_USE_PURPOSE
- delete mTemporaryShareFile;
- mTemporaryShareFile = new QTemporaryFile();
- mTemporaryShareFile->open();
- mTemporaryShareFile->setPermissions(QFile::ReadUser);
- mTemporaryShareFile->write(mEditor->editor()->toPlainText().toUtf8());
- mTemporaryShareFile->close();
- mShareMenu->model()->setInputData(QJsonObject {
- { QStringLiteral("urls"), QJsonArray { \
{QUrl::fromLocalFile(mTemporaryShareFile->fileName()).toString()} } \
},
- { QStringLiteral("mimeType"), { QStringLiteral("text/plain") } }
- });
- mShareMenu->reload();
-#endif
-}
-
-void FilterConvertToSieveResultDialog::slotShareActionFinished(const QJsonObject \
&output, int error, const QString &message)
-{
-#ifdef KF5_USE_PURPOSE
- if (error) {
- KMessageBox::error(this, i18n("There was a problem sharing the document: \
%1", message),
- i18n("Share"));
- } else {
- const QString url = output[QLatin1String("url")].toString();
- if (url.isEmpty()) {
- KMessageBox::information(this, i18n("File was shared."));
- } else {
- KMessageBox::information(this, i18n("<qt>You can find the new request \
at:<br /><a href='%1'>%1</a> </qt>", url),
- QString(), QString(), KMessageBox::AllowLink);
- }
- }
-#endif
}
void FilterConvertToSieveResultDialog::slotSave()
diff --git a/src/filter/filterconverter/filterconverttosieveresultdialog.h \
b/src/filter/filterconverter/filterconverttosieveresultdialog.h index \
7dca849..5dd4f8e 100644
--- a/src/filter/filterconverter/filterconverttosieveresultdialog.h
+++ b/src/filter/filterconverter/filterconverttosieveresultdialog.h
@@ -24,11 +24,6 @@ class QTemporaryFile;
namespace KPIMTextEdit {
class PlainTextEditorWidget;
}
-#ifdef KF5_USE_PURPOSE
-namespace Purpose {
-class Menu;
-}
-#endif
namespace MailCommon {
class FilterConvertToSieveResultDialog : public QDialog
@@ -50,10 +45,6 @@ private:
void slotInitializeShareMenu();
KPIMTextEdit::PlainTextEditorWidget *mEditor = nullptr;
KSyntaxHighlighting::Repository mSyntaxRepo;
-#ifdef KF5_USE_PURPOSE
- Purpose::Menu *mShareMenu = nullptr;
- QTemporaryFile *mTemporaryShareFile = nullptr;
-#endif
};
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic