Add weather routes project progress

This commit is contained in:
2025-04-07 19:40:38 +02:00
parent 8941d84bc8
commit fa5f6b2588
52 changed files with 2027 additions and 0 deletions

65
WeatherRoutes/main.cpp Normal file
View File

@@ -0,0 +1,65 @@
#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 <QGuiApplication>
#include <QLocationPermission>
#include <QQmlApplicationEngine>
#include <QQmlContext>
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<WeatherController> weatherCntrl =
std::make_shared<WeatherController>();
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();
}