1 | /* |
2 | SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> |
3 | SPDX-License-Identifier: LGPL-2.0-or-later |
4 | */ |
5 | |
6 | #include "kgeourihandler_p.h" |
7 | #include <kguiaddons_version.h> |
8 | |
9 | #include <QCommandLineParser> |
10 | #include <QDesktopServices> |
11 | #include <QGuiApplication> |
12 | #include <QUrl> |
13 | |
14 | int main(int argc, char **argv) |
15 | { |
16 | QCoreApplication::setApplicationName(QStringLiteral("kde-geo-uri-handler" )); |
17 | QCoreApplication::setOrganizationName(QStringLiteral("KDE" )); |
18 | QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org" )); |
19 | QCoreApplication::setApplicationVersion(QStringLiteral(KGUIADDONS_VERSION_STRING)); |
20 | |
21 | QGuiApplication app(argc, argv); |
22 | |
23 | QCommandLineParser parser; |
24 | QCommandLineOption coordTmplOpt(QStringLiteral("coordinate-template" ), |
25 | QStringLiteral("URL template for coordinate-based access." ), |
26 | QStringLiteral("coordinate-template" )); |
27 | parser.addOption(commandLineOption: coordTmplOpt); |
28 | QCommandLineOption queryTmplOpt(QStringLiteral("query-template" ), QStringLiteral("URL template for query-based access." ), QStringLiteral("query-template" )); |
29 | parser.addOption(commandLineOption: queryTmplOpt); |
30 | QCommandLineOption fallbackOpt(QStringLiteral("fallback" ), QStringLiteral("URL to use in case of errors." ), QStringLiteral("fallback-url" )); |
31 | parser.addOption(commandLineOption: fallbackOpt); |
32 | parser.addPositionalArgument(QStringLiteral("uri" ), QStringLiteral("geo: URI to handle" )); |
33 | parser.addHelpOption(); |
34 | parser.addVersionOption(); |
35 | parser.process(app); |
36 | |
37 | KGeoUriHandler handler; |
38 | handler.setCoordinateTemplate(parser.value(option: coordTmplOpt)); |
39 | handler.setQueryTemplate(parser.value(option: queryTmplOpt)); |
40 | handler.setFallbackUrl(parser.value(option: fallbackOpt)); |
41 | |
42 | const auto args = parser.positionalArguments(); |
43 | for (const auto &arg : args) { |
44 | const auto url = handler.handleUri(geoUri: QUrl(arg)); |
45 | QDesktopServices::openUrl(url: QUrl(url)); |
46 | } |
47 | |
48 | return 0; |
49 | } |
50 | |