/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, * IN PART OR IN WHOLE, * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * file guiglobals.cpp * date 10/27/2019 * author Behrouz NematiPour * */ #include "guiglobals.h" // Qt #include // Project #include "logger.h" #include "guiview.h" // Project #include "mmodel.h" #include "vview.h" namespace Gui { QQuickView *_viewer = nullptr; /*! * \brief registerTypes * \details registering meta types */ void registerTypes() { qRegisterMetaType ("GuiActionType" ); qRegisterMetaType ("GuiActionData" ); qRegisterMetaType ("GuiActionIndx" ); qRegisterMetaType ("GuiAlarmID" ); qRegisterMetaType ("GuiAlarmPriority"); REGISTER_MODEL_METATYPES } /*! * \brief registerQmlTypes * \details registering QML types */ void registerQmlTypes() { qmlRegisterType ("Gui.View" , 0, 1, "GuiView"); qmlRegisterUncreatableType ("Gui.Actions", 0, 1, "GuiActions", QStringLiteral("Used only for enumerations no need to have an object")); REGISTER_VIEW_TYPES } /*! * \brief startGui * \details the GUI initializer/starter function */ void startGui() { _viewer = new QQuickView; registerTypes(); registerQmlTypes(); QObject::connect(_viewer, &QQuickView::statusChanged, qApp, [=](QQuickView::Status vStatus) { bool ok = vStatus == QQuickView::Ready; if (ok) { _viewer->show(); } else if (vStatus == QQuickView::Error || vStatus == QQuickView::Null) { for (const auto &error : _viewer->errors()) { LOG_ERROR(QObject::tr("Application Terminated: %1").arg(error.toString())); } QCoreApplication::exit(-1); } }); _viewer->setSource(QStringLiteral("qrc:/main.qml")); } }