/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright \n * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, \n * IN PART OR IN WHOLE, \n * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. \n * * \file main.cpp * \date 2019/09/30 * \author Behrouz NematiPour * */ /*! * \mainpage UI Software Design Description * \section Detailed Description * This document has been generated by Doxygen.\n * This document describes the detail description of the UI Application Software design.\n * UI Application starts by Application Initialization which happens in \ref main.cpp "Initialization section".\n */ // Qt #include #include #include #include // Project #include "maintimer.h" #include "caninterface.h" #include "messagehandler.h" #include "applicationcontroller.h" #include "guicontroller.h" #ifdef UNIT_TEST #include "unittests/unittests.h" QTEST_MAIN(unittests) #else /*! \brief Application Initialization\n * Some part of the application need to be initialized out of any thread. * So is initialized here to be initialized in the main thread. * this section also includes: */ int main(int argc, char *argv[]) { //! - Qt Application initialization and parameters settings // Qt Core Application parameters settings // Qt Core Application Initialization QApplication app(argc, argv); QCoreApplication::setApplicationName(QLatin1String("Denali")); QCoreApplication::setOrganizationName(QLatin1String("Diality Inc.")); //! - Setting the application version regarding the Bamboo build number. QString ver_revis = QString("%1").arg(VER_REVIS); if (ver_revis.isEmpty()) { ver_revis = QString("%1").arg(VER_DEVEL); } QCoreApplication::setApplicationVersion(QString("%1.%2.%3") .arg(VER_MAJOR) .arg(VER_MINOR) .arg(ver_revis)); //! - Translation initialization QTranslator translator; bool trLoaded = translator.load(QLocale(), app.applicationName(), QLatin1String("_"), QLatin1String(":/translations")); if (trLoaded) { app.installTranslator(&translator); } //! - Initializing Main Timer _MainTimer->init(); //! - Initializing CanBus Interface _CanInterface->init(); //! - Initializing CanBus Message Handler _MessageHandler->init(); //! - Initializing Application Controller _ApplicationController->init(); QObject::connect(_ApplicationController, &ApplicationController::quit, &app, [](int retcode) { //qDebug() << "Application Terminated:" << retcode; QCoreApplication::exit(retcode); }, Qt::QueuedConnection); ////! - Initializing GUI Controller _GuiController->init(); //! - Initialize the Qml Viewer and starts GUI startGui(); return app.exec(); } #endif