[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