Add weather routes project progress
This commit is contained in:
65
WeatherRoutes/main.cpp
Normal file
65
WeatherRoutes/main.cpp
Normal 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();
|
||||
}
|
||||
Reference in New Issue
Block a user