66 lines
2.1 KiB
C++
66 lines
2.1 KiB
C++
#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();
|
|
}
|