Changeset View
Changeset View
Standalone View
Standalone View
src/fileitemactionplugin/sharefileitemaction.cpp
Show All 22 Lines | |||||
23 | 23 | | |||
24 | #include <QList> | 24 | #include <QList> | ||
25 | #include <QAction> | 25 | #include <QAction> | ||
26 | #include <QWidget> | 26 | #include <QWidget> | ||
27 | #include <QVariantList> | 27 | #include <QVariantList> | ||
28 | #include <QUrl> | 28 | #include <QUrl> | ||
29 | #include <QIcon> | 29 | #include <QIcon> | ||
30 | #include <QJsonArray> | 30 | #include <QJsonArray> | ||
31 | #include <QDesktopServices> | ||||
31 | 32 | | |||
32 | #include <KPluginFactory> | 33 | #include <KPluginFactory> | ||
33 | #include <KPluginLoader> | 34 | #include <KPluginLoader> | ||
34 | #include <KLocalizedString> | 35 | #include <KLocalizedString> | ||
36 | #include <KNotification> | ||||
35 | 37 | | |||
36 | #include "menu.h" | 38 | #include "menu.h" | ||
37 | #include "alternativesmodel.h" | 39 | #include "alternativesmodel.h" | ||
38 | 40 | | |||
39 | K_PLUGIN_CLASS_WITH_JSON(ShareFileItemAction, "sharefileitemaction.json") | 41 | K_PLUGIN_CLASS_WITH_JSON(ShareFileItemAction, "sharefileitemaction.json") | ||
40 | 42 | | |||
41 | Q_LOGGING_CATEGORY(PURPOSE_FILEITEMACTION, "purpose.fileitemaction") | 43 | Q_LOGGING_CATEGORY(PURPOSE_FILEITEMACTION, "purpose.fileitemaction") | ||
42 | 44 | | |||
43 | ShareFileItemAction::ShareFileItemAction(QObject* parent, const QVariantList& ) | 45 | ShareFileItemAction::ShareFileItemAction(QObject* parent, const QVariantList& ) | ||
44 | : KAbstractFileItemActionPlugin(parent), | 46 | : KAbstractFileItemActionPlugin(parent), | ||
45 | m_menu(new Purpose::Menu()) | 47 | m_menu(new Purpose::Menu()) | ||
46 | { | 48 | { | ||
47 | m_menu->setTitle(i18n("Share")); | 49 | m_menu->setTitle(i18n("Share")); | ||
48 | m_menu->setIcon(QIcon::fromTheme(QStringLiteral("document-share"))); | 50 | m_menu->setIcon(QIcon::fromTheme(QStringLiteral("document-share"))); | ||
49 | m_menu->model()->setPluginType(QStringLiteral("Export")); | 51 | m_menu->model()->setPluginType(QStringLiteral("Export")); | ||
52 | | ||||
53 | QObject::connect(m_menu, &Purpose::Menu::finished, [](const QJsonObject &output, int error, const QString &errorMessage) { | ||||
54 | if (error == 0) { | ||||
55 | if (output.contains(QLatin1String("url"))) | ||||
56 | QDesktopServices::openUrl(QUrl(output.value(QLatin1String("url")).toString())); | ||||
57 | } else { | ||||
58 | KNotification::event(KNotification::Error, i18n("Error sharing"), errorMessage); | ||||
59 | qWarning() << "job failed with error" << error << errorMessage << output; | ||||
60 | } | ||||
61 | }); | ||||
50 | } | 62 | } | ||
51 | 63 | | |||
52 | QList<QAction*> ShareFileItemAction::actions(const KFileItemListProperties& fileItemInfos, QWidget* parentWidget) | 64 | QList<QAction*> ShareFileItemAction::actions(const KFileItemListProperties& fileItemInfos, QWidget* parentWidget) | ||
53 | { | 65 | { | ||
54 | Q_UNUSED(parentWidget); | 66 | Q_UNUSED(parentWidget); | ||
55 | 67 | | |||
56 | QJsonArray urlsJson; | 68 | QJsonArray urlsJson; | ||
57 | 69 | | |||
Show All 14 Lines |