File indexing completed on 2024-04-28 03:54:16
0001 /* 0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "kgeourihandler_p.h" 0007 #include <kguiaddons_version.h> 0008 0009 #include <QCommandLineParser> 0010 #include <QDesktopServices> 0011 #include <QGuiApplication> 0012 #include <QUrl> 0013 0014 int main(int argc, char **argv) 0015 { 0016 QCoreApplication::setApplicationName(QStringLiteral("kde-geo-uri-handler")); 0017 QCoreApplication::setOrganizationName(QStringLiteral("KDE")); 0018 QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org")); 0019 QCoreApplication::setApplicationVersion(QStringLiteral(KGUIADDONS_VERSION_STRING)); 0020 0021 QGuiApplication app(argc, argv); 0022 0023 QCommandLineParser parser; 0024 QCommandLineOption coordTmplOpt(QStringLiteral("coordinate-template"), 0025 QStringLiteral("URL template for coordinate-based access."), 0026 QStringLiteral("coordinate-template")); 0027 parser.addOption(coordTmplOpt); 0028 QCommandLineOption queryTmplOpt(QStringLiteral("query-template"), QStringLiteral("URL template for query-based access."), QStringLiteral("query-template")); 0029 parser.addOption(queryTmplOpt); 0030 QCommandLineOption fallbackOpt(QStringLiteral("fallback"), QStringLiteral("URL to use in case of errors."), QStringLiteral("fallback-url")); 0031 parser.addOption(fallbackOpt); 0032 parser.addPositionalArgument(QStringLiteral("uri"), QStringLiteral("geo: URI to handle")); 0033 parser.addHelpOption(); 0034 parser.addVersionOption(); 0035 parser.process(app); 0036 0037 KGeoUriHandler handler; 0038 handler.setCoordinateTemplate(parser.value(coordTmplOpt)); 0039 handler.setQueryTemplate(parser.value(queryTmplOpt)); 0040 handler.setFallbackUrl(parser.value(fallbackOpt)); 0041 0042 const auto args = parser.positionalArguments(); 0043 for (const auto &arg : args) { 0044 const auto url = handler.handleUri(QUrl(arg)); 0045 QDesktopServices::openUrl(QUrl(url)); 0046 } 0047 0048 return 0; 0049 }