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 }