Files
shipheart-wasm/main.cpp
T

59 lines
2.2 KiB
C++

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QtQml>
#include "mock/mock_bdd.h"
#include "mock/mock_systeme.h"
#include "mock/mock_tbmesures.h"
#include "dataprovider.h"
// ============================================================================
// main.cpp - shipheart_wasm (CLIENT)
// ----------------------------------------------------------------------------
// À NE PAS CONFONDRE avec le main.cpp de shipheart_api (API, QHttpServer) -
// même nom de fichier, deux projets différents. Celui-ci utilise
// QGuiApplication (pas QApplication : pas de QtWidgets, app 100% QML/QtQuick).
// ============================================================================
static QJSValue appVersionSingletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
{
Q_UNUSED(engine)
QJSValue appInfo = scriptEngine->newObject();
appInfo.setProperty("adresse_shipbase", QString());
appInfo.setProperty("etat_connexion_bdd", 1);
appInfo.setProperty("version", QStringLiteral("3.0.0-wasm"));
appInfo.setProperty("type_installation", QStringLiteral("0"));
appInfo.setProperty("taille_ecran", QString());
return appInfo;
}
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QGuiApplication::setApplicationName("ShipHeart_Wasm");
QGuiApplication::setApplicationVersion("3.0.0-wasm");
qmlRegisterType<Bdd>("qt.koriolan.shipheart", 1, 0, "Bdd");
qmlRegisterType<TbMesuresModel>("qt.koriolan.shipheart", 1, 0, "TbMesuresModel");
qmlRegisterType<Systeme>("qt.koriolan.shipheart", 1, 0, "Systeme");
qmlRegisterType<DataProvider>("qt.koriolan.shipheart", 1, 0, "DataProvider");
qmlRegisterSingletonType("qt.koriolan.shipheart", 1, 0, "AppInfo", appVersionSingletonProvider);
auto engine = new QQmlApplicationEngine(&app);
engine->setObjectName("currentEngine");
const QUrl url(QStringLiteral("qrc:/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();
}