diff options
author | Martin Kampas <martin.kampas@jolla.com> | 2016-11-17 18:03:19 +0100 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com> | 2016-11-23 20:17:50 +0000 |
commit | df675ea04b1c3d43102d6b7dc459fe9027efb715 (patch) | |
tree | 72c71bae13cd7b6ade7d53f8873859d8468dfde3 | |
parent | 0e1f831f212cbbe9d2a3f0d5b5d471de2a55768e (diff) |
Example app: Utilize LiveNodeEngine::usePreloadedDocument
Change-Id: If3e4dc673f7f9fbb821ac74038e0d30e59b9f915
Reviewed-by: Juergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>
-rw-r--r-- | examples/app/app.pro | 1 | ||||
-rw-r--r-- | examples/app/main.cpp | 37 |
2 files changed, 38 insertions, 0 deletions
diff --git a/examples/app/app.pro b/examples/app/app.pro index 3ffe5dc..cc41e36 100644 --- a/examples/app/app.pro +++ b/examples/app/app.pro @@ -1,5 +1,6 @@ TEMPLATE = app TARGET = app +CONFIG += c++11 macx*: CONFIG -= app_bundle QT *= quick diff --git a/examples/app/main.cpp b/examples/app/main.cpp index 2545b02..d02c60d 100644 --- a/examples/app/main.cpp +++ b/examples/app/main.cpp @@ -43,6 +43,12 @@ class MyQmlApplicationEngine : public QQmlApplicationEngine public: MyQmlApplicationEngine(const QString &mainQml); // Perform some setup here + + QString mainQml() const; + QQuickWindow *mainWindow(); + QList<QQmlError> warnings() const; + + // ... }; int main(int argc, char **argv) @@ -74,14 +80,27 @@ int main(int argc, char **argv) receiver.registerNode(&node); receiver.listen(10234); + // Advanced use: let it know the initially loaded QML component (do this + // only after registering to receiver!) + node.usePreloadedDocument(engine.mainQml(), engine.mainWindow(), engine.warnings()); #endif return app.exec(); } //![0] +// Keep the snippet simple! +static QString MyQmlApplicationEngine_mainQml; +static QList<QQmlError> MyQmlApplicationEngine_warnings; + MyQmlApplicationEngine::MyQmlApplicationEngine(const QString &mainQml) { + // Would be nice to have this in QQmlApplicationEngine + MyQmlApplicationEngine_mainQml = mainQml; + connect(this, &QQmlEngine::warnings, [](const QList<QQmlError> &warnings) { + MyQmlApplicationEngine_warnings.append(warnings); + }); + QStringList colors; colors.append(QStringLiteral("red")); colors.append(QStringLiteral("green")); @@ -92,4 +111,22 @@ MyQmlApplicationEngine::MyQmlApplicationEngine(const QString &mainQml) load(QDir(qApp->applicationDirPath()).absoluteFilePath(mainQml)); }; +QString MyQmlApplicationEngine::mainQml() const +{ + return MyQmlApplicationEngine_mainQml; +} + +QQuickWindow *MyQmlApplicationEngine::mainWindow() +{ + if (rootObjects().isEmpty()) + return nullptr; + + return qobject_cast<QQuickWindow *>(rootObjects().first()); +} + +QList<QQmlError> MyQmlApplicationEngine::warnings() const +{ + return MyQmlApplicationEngine_warnings; +} + #include "main.moc" |