#include "controller/networkmanager.h" #include "controller/weathercontroller.h" #include "data/mapdata.h" #include "data/weatherdetailsdata.h" #include "controller/weathercontroller.h" #include "controller/networkmanager.h" #include "enums/weatherstatus.h" #include #include #include #include int main(int argc, char *argv[]) { #if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); #endif QGuiApplication app(argc, argv); QLocationPermission permission; permission.setAccuracy(QLocationPermission::Precise); permission.setAvailability(QLocationPermission::WhenInUse); switch (qApp->checkPermission(permission)) { case Qt::PermissionStatus::Undetermined: qApp->requestPermission(permission, [](const QPermission &permission) { if (permission.status() == Qt::PermissionStatus::Granted) { qDebug() << "Permission granted !!"; } }); case Qt::PermissionStatus::Granted: case Qt::PermissionStatus::Denied: break; } QQmlApplicationEngine engine; MapData mapData; mapData.setDefaultZoomLevel(15); mapData.setZoomLevel(mapData.defaultZoomLevel()); mapData.setGpsUpdateInterval(1000); engine.rootContext()->setContextProperty("mapData", &mapData); WeatherController ctrl; std::shared_ptr weatherCntrl = std::make_shared(); ctrl.parseJSONData(); WeatherDetailsData weatherDetailsData(weatherCntrl); engine.rootContext()->setContextProperty("weatherDetailsData", &weatherDetailsData); engine.rootContext()->setContextProperty("networkManager", NetworkManager::Instance()); const QUrl url(QStringLiteral("qrc:/WeatherRoutes/Main.qml")); QObject::connect( &engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec(); }