KOSMIndoorMap

main.cpp
1/*
2 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include <kosmindoormap_version.h>
8
9#include <KLocalizedContext>
10#include <KLocalizedString>
11
12#include <QNetworkAccessManager>
13#include <QNetworkDiskCache>
14#include <QQmlApplicationEngine>
15#include <QQmlContext>
16#include <QQmlNetworkAccessManagerFactory>
17#include <QStandardPaths>
18
19#ifdef Q_OS_ANDROID
20#include <QGuiApplication>
21#include <QQuickStyle>
22#else
23#include <QApplication>
24#endif
25
26#include <QIcon>
27#include <QtPlugin>
28
29#if HAVE_OSM_PBF_SUPPORT
30Q_IMPORT_PLUGIN(OSM_PbfIOPlugin)
31#endif
32
33class NetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory
34{
35public:
36 QNetworkAccessManager* create(QObject *parent) override
37 {
38 auto nam = new QNetworkAccessManager(parent);
39 nam->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy);
40
41 nam->enableStrictTransportSecurityStore(true, QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1String("/hsts/"));
42 nam->setStrictTransportSecurityEnabled(true);
43
44 auto namDiskCache = new QNetworkDiskCache(nam);
45 namDiskCache->setCacheDirectory(QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1String("/nam/"));
46 nam->setCache(namDiskCache);
47
48 return nam;
49 }
50};
51
52#ifdef Q_OS_ANDROID
53Q_DECL_EXPORT
54#endif
55int main(int argc, char **argv)
56{
57 QCoreApplication::setApplicationName(QStringLiteral("kosmindoormap"));
58 QCoreApplication::setOrganizationName(QStringLiteral("KDE"));
59 QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org"));
60 QCoreApplication::setApplicationVersion(QStringLiteral(KOSMINDOORMAP_VERSION_STRING));
61
62#ifdef Q_OS_ANDROID
63 QGuiApplication app(argc, argv);
64 QQuickStyle::setStyle(QStringLiteral("org.kde.breeze"));
65#else
66 QApplication app(argc, argv); // for native file dialogs
67#endif
69 QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("go-home")));
70
72 engine.setNetworkAccessManagerFactory(new NetworkAccessManagerFactory());
73 auto l10nContext = new KLocalizedContext(&engine);
74 l10nContext->setTranslationDomain(QStringLiteral(TRANSLATION_DOMAIN));
75 engine.rootContext()->setContextObject(l10nContext);
76
77 engine.load(QStringLiteral("qrc:/indoormap.qml"));
78 return app.exec();
79}
QString i18n(const char *text, const TYPE &arg...)
void setApplicationName(const QString &application)
void setApplicationVersion(const QString &version)
void setOrganizationDomain(const QString &orgDomain)
void setOrganizationName(const QString &orgName)
void setApplicationDisplayName(const QString &name)
void setWindowIcon(const QIcon &icon)
QIcon fromTheme(const QString &name)
void load(const QString &filePath)
void setContextObject(QObject *object)
QQmlContext * rootContext() const const
void setNetworkAccessManagerFactory(QQmlNetworkAccessManagerFactory *factory)
void setStyle(const QString &style)
QString writableLocation(StandardLocation type)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jul 26 2024 11:57:46 by doxygen 1.11.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.