The base class for Hemera Qml Gui applications. More...

#include <HemeraGui/QmlGuiApplication>

Inheritance diagram for Hemera::QmlGuiApplication:

Public Member Functions

 QmlGuiApplication (ApplicationProperties *properties, const QUrl &mainQmlFile)
 
virtual ~QmlGuiApplication ()
 
- Public Member Functions inherited from Hemera::GuiApplication
 GuiApplication (ApplicationProperties *properties)
 
virtual ~GuiApplication ()
 

Protected Member Functions

QQmlContext * rootContext ()
 
QQuickItem * rootObject ()
 
QQmlEngine * qmlEngine ()
 
QQuickView * mainView ()
 
- Protected Member Functions inherited from Hemera::AsyncInitObject
void setParts (uint parts)
 

Additional Inherited Members

- Public Slots inherited from Hemera::GuiApplication
void setMainWindow (QWindow *window)
 
- Public Slots inherited from Hemera::Application
void start ()
 Triggers a safe start of the application. More...
 
void stop ()
 Triggers a safe stop of the application. More...
 
void quit ()
 Triggers a safe quit of the application. More...
 
Hemera::OperationrequestOrbitSwitchInhibition (const QString &reason=QString())
 Requests an inhibition for orbit switching. More...
 
Hemera::OperationreleaseOrbitSwitchInhibition ()
 Releases a previously set inhibition. More...
 
- Public Slots inherited from Hemera::AsyncInitObject
Hemera::Operationinit ()
 
- Signals inherited from Hemera::Application
void applicationStatusChanged (Hemera::Application::ApplicationStatus status)
 Emitted when the application's status changes. More...
 
- Signals inherited from Hemera::AsyncInitObject
void ready ()
 
- Protected Types inherited from Hemera::Application
enum  OperationResult : quint8 { OperationResult::Success, OperationResult::Failed, OperationResult::Fatal }
 Defines the result of a state transition. More...
 
- Protected Slots inherited from Hemera::Application
virtual void startImpl ()=0
 Implementation of the start procedure. More...
 
virtual void stopImpl ()=0
 Implementation of the stop procedure. More...
 
virtual void prepareForShutdown ()
 Implementation of the shutdown procedure. More...
 
void setStarted (OperationResult result=OperationResult::Success, const QString &errorName=QString(), const QString &errorMessage=QString())
 Marks a start operation as finished and completes the transition. More...
 
void setStopped (OperationResult result=OperationResult::Success, const QString &errorName=QString(), const QString &errorMessage=QString())
 Marks a stop operation as finished and completes the transition. More...
 
void setReadyForShutdown (OperationResult result=OperationResult::Success, const QString &errorName=QString(), const QString &errorMessage=QString())
 Marks a prepareForShutdown operation as finished and completes the transition. More...
 
- Protected Slots inherited from Hemera::AsyncInitObject
virtual void initImpl ()=0
 
void setReady ()
 
void setInitError (const QString &errorName, const QString &message=QString())
 
void setOnePartIsReady ()
 

Detailed Description

The base class for Hemera Qml Gui applications.

QmlGuiApplication holds all the needed logic for applications based upon Qt Quick 2.

Compared to GuiApplication, it does not manage QWindow directly, but only takes a QUrl of a Qml file instead. Such a url can be also the URL of a resource or qrc resource.

QmlGuiApplication should be used when you need to mix Qml and C++ logic. If you don't need C++ logic in your application, you can simply use SimpleQmlGuiApplication in your ha file, which does not require you to write any C++ code.

During the initialization phase, it is possible to interact with the QML engine before any component is loaded. This allows to interact, for example, with the context before it starts taking effect.

A typical usage of QmlGuiApplication is:

void MyQmlGuiApplication::initImpl()
{
qmlEngine()->rootContext()->setContextProperty(QStringLiteral("myProperty"), this);
}
Note
QmlGuiApplication requires your device to support a working 3D stack. Please enquire with your representative to find out if that is the case. Running a QmlGuiApplication on an unsupported device is, besides unsupported, likely not to be working.

Constructor & Destructor Documentation

Hemera::QmlGuiApplication::QmlGuiApplication ( ApplicationProperties properties,
const QUrl &  mainQmlFile 
)
explicit

Default constructor.

mainQmlFile The main Qml file to be loaded on startup. Usually a resource or qrc path.

Hemera::QmlGuiApplication::~QmlGuiApplication ( )
virtual

Default destructor.

Member Function Documentation

QQmlContext * Hemera::QmlGuiApplication::rootContext ( )
protected
Returns
The root Qml context
Note
This function returns a meaningful value only when the initialization procedure is started. It can be called in initImpl, but MUST NOT be called in the constructor.
QQuickItem * Hemera::QmlGuiApplication::rootObject ( )
protected
Returns
The Qml root object
Note
This function returns a meaningful value only when the initialization procedure is started. It can be called in initImpl, but MUST NOT be called in the constructor.
QQmlEngine * Hemera::QmlGuiApplication::qmlEngine ( )
protected
Returns
The Qml engine for this application
Note
This function returns a meaningful value only when the initialization procedure is started. It can be called in initImpl, but MUST NOT be called in the constructor.
QQuickView * Hemera::QmlGuiApplication::mainView ( )
protected
Returns
The main QQuickView for this application
Note
This function returns a meaningful value only when the initialization procedure is started. It can be called in initImpl, but MUST NOT be called in the constructor.