Commit f50b692f authored by Gus Grubba's avatar Gus Grubba

Allow plugins to create (native) root window

parent 6dae1e7e
......@@ -79,6 +79,7 @@
#include "QGCMapPolygon.h"
#include "ParameterManager.h"
#include "SettingsManager.h"
#include "QGCCorePlugin.h"
#ifndef NO_SERIAL_LINK
#include "SerialLink.h"
......@@ -395,11 +396,7 @@ bool QGCApplication::_initForNormalAppBoot(void)
connect(this, &QGCApplication::lastWindowClosed, this, QGCApplication::quit);
#ifdef __mobile__
_qmlAppEngine = new QQmlApplicationEngine(this);
_qmlAppEngine->addImportPath("qrc:/qml");
_qmlAppEngine->rootContext()->setContextProperty("joystickManager", toolbox()->joystickManager());
_qmlAppEngine->rootContext()->setContextProperty("debugMessageModel", AppMessages::getModel());
_qmlAppEngine->load(QUrl(QStringLiteral("qrc:/qml/MainWindowNative.qml")));
_qmlAppEngine = toolbox()->corePlugin()->createRootWindow(this);
#else
// Start the user interface
MainWindow* mainWindow = MainWindow::_create();
......
......@@ -7,11 +7,13 @@
*
****************************************************************************/
#include "QGCApplication.h"
#include "QGCCorePlugin.h"
#include "QGCOptions.h"
#include "QGCSettings.h"
#include "FactMetaData.h"
#include "SettingsManager.h"
#include "AppMessages.h"
#include <QtQml>
#include <QQmlEngine>
......@@ -213,3 +215,13 @@ void QGCCorePlugin::valuesWidgetDefaultSettings(QStringList& largeValues, QStrin
Q_UNUSED(smallValues);
largeValues << "Vehicle.altitudeRelative" << "Vehicle.groundSpeed" << "Vehicle.flightTime";
}
QQmlApplicationEngine* QGCCorePlugin::createRootWindow(QObject *parent)
{
QQmlApplicationEngine* pEngine = new QQmlApplicationEngine(parent);
pEngine->addImportPath("qrc:/qml");
pEngine->rootContext()->setContextProperty("joystickManager", qgcApp()->toolbox()->joystickManager());
pEngine->rootContext()->setContextProperty("debugMessageModel", AppMessages::getModel());
pEngine->load(QUrl(QStringLiteral("qrc:/qml/MainWindowNative.qml")));
return pEngine;
}
......@@ -27,6 +27,7 @@ class QGCSettings;
class QGCCorePlugin_p;
class FactMetaData;
class QGeoPositionInfoSource;
class QQmlApplicationEngine;
class QGCCorePlugin : public QGCTool
{
......@@ -83,9 +84,12 @@ public:
/// Allows a plugin to override the specified color name from the palette
virtual void paletteOverride(QString colorName, QGCPalette::PaletteColorInfo_t& colorInfo);
/// Allows the plugin the override the default settings for the Values Widget large and small values
/// Allows the plugin to override the default settings for the Values Widget large and small values
virtual void valuesWidgetDefaultSettings(QStringList& largeValues, QStringList& smallValues);
/// Allows the plugin to override the creation of the root (native) window.
virtual QQmlApplicationEngine* createRootWindow(QObject* parent);
bool showTouchAreas(void) const { return _showTouchAreas; }
bool showAdvancedUI(void) const { return _showAdvancedUI; }
void setShowTouchAreas(bool show);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment