File indexing completed on 2024-04-14 03:58:03
0001 /* 0002 SPDX-FileCopyrightText: 2014 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include <QApplication> 0008 #include <QDebug> 0009 #include <QJsonArray> 0010 #include <QJsonObject> 0011 #include <QMimeDatabase> 0012 #include <QStandardPaths> 0013 #include <QUrl> 0014 0015 #include <purpose/alternativesmodel.h> 0016 #include <purpose/menu.h> 0017 0018 int main(int argc, char **argv) 0019 { 0020 QApplication app(argc, argv); 0021 0022 Purpose::Menu menu; 0023 Purpose::AlternativesModel *model = menu.model(); 0024 0025 QJsonObject input; 0026 if (!app.arguments().isEmpty()) { 0027 QMimeDatabase mime; 0028 QUrl url = QUrl::fromUserInput(app.arguments().constLast()); 0029 input = QJsonObject{{QStringLiteral("urls"), QJsonArray{url.toString()}}, {QStringLiteral("mimeType"), mime.mimeTypeForUrl(url).name()}}; 0030 } else { 0031 input = 0032 QJsonObject{{QStringLiteral("urls"), QJsonArray{QStringLiteral("http://kde.org")}}, {QStringLiteral("mimeType"), QStringLiteral("dummy/thing")}}; 0033 } 0034 qDebug() << "sharing..." << input; 0035 0036 model->setInputData(input); 0037 model->setPluginType(QStringLiteral("Export")); 0038 menu.reload(); 0039 menu.exec(); 0040 0041 QObject::connect(&menu, &Purpose::Menu::finished, &menu, [&app](const QJsonObject &output, int error, const QString &errorMessage) { 0042 if (error != 0) { 0043 qDebug() << "job failed with error" << errorMessage; 0044 } 0045 qDebug() << "output:" << output; 0046 app.quit(); 0047 }); 0048 0049 return app.exec(); 0050 }