aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kampas <martin.kampas@jolla.com>2016-11-17 18:03:19 +0100
committerJuergen Bocklage-Ryannel <juergen.bocklage-ryannel@pelagicore.com>2016-11-23 20:17:50 +0000
commitdf675ea04b1c3d43102d6b7dc459fe9027efb715 (patch)
tree72c71bae13cd7b6ade7d53f8873859d8468dfde3
parent0e1f831f212cbbe9d2a3f0d5b5d471de2a55768e (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.pro1
-rw-r--r--examples/app/main.cpp37
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"