Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 2 files). Show all
Unified · Split
| @@ -44,7 +44,7 @@ void TabletScriptingInterface::setQmlTabletRoot(QString tabletId, QQuickItem* qm · 43 unmodified lines | ||
| 44 | 44 | |
| 45 | 45 | static const char* TABLET_SOURCE_URL = "Tablet.qml"; |
| 46 | 46 | static const char* WEB_VIEW_SOURCE_URL = "TabletWebView.qml"; |
| 47 | −static const char* LOADER_SOURCE_PROPERTY_NAME = "loaderSource"; | |
| 47 | +static const char* LOADER_SOURCE_PROPERTY_NAME = "LoaderSource"; | |
| 48 | 48 | |
| 49 | 49 | TabletProxy::TabletProxy(QString name) : _name(name) { |
| 50 | 50 | ; |
| @@ -79,6 +79,8 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr · 28 unmodified lines | ||
| 79 | 79 | if (_qmlTabletRoot && _qmlOffscreenSurface) { |
| 80 | 80 | QObject::connect(_qmlOffscreenSurface, SIGNAL(webEventReceived(QVariant)), this, SIGNAL(webEventReceived(QVariant))); |
| 81 | 81 | gotoHomeScreen(); |
| 82 | + //auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); | |
| 83 | + //QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); | |
| 82 | 84 | } else { |
| 83 | 85 | removeButtonsFromHomeScreen(); |
| 84 | 86 | } |
| @@ -88,8 +90,10 @@ void TabletProxy::gotoHomeScreen() { · 3 unmodified lines | ||
| 88 | 90 | if (_qmlTabletRoot) { |
| 89 | 91 | QString tabletSource = _qmlTabletRoot->property(LOADER_SOURCE_PROPERTY_NAME).toString(); |
| 90 | 92 | if (tabletSource != TABLET_SOURCE_URL) { |
| 93 | + _qmlTabletRoot->setProperty(LOADER_SOURCE_PROPERTY_NAME, TABLET_SOURCE_URL); | |
| 94 | + auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); | |
| 95 | + QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); | |
| 91 | 96 | QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(TABLET_SOURCE_URL))); |
| 92 | − addButtonsToHomeScreen(); | |
| 93 | 97 | } |
| 94 | 98 | } |
| 95 | 99 | } |
| @@ -99,6 +103,7 @@ void TabletProxy::gotoWebScreen(const QString& url) { · 3 unmodified lines | ||
| 99 | 103 | removeButtonsFromHomeScreen(); |
| 100 | 104 | QString tabletSource = _qmlTabletRoot->property(LOADER_SOURCE_PROPERTY_NAME).toString(); |
| 101 | 105 | if (tabletSource != WEB_VIEW_SOURCE_URL) { |
| 106 | + _qmlTabletRoot->setProperty(LOADER_SOURCE_PROPERTY_NAME, WEB_VIEW_SOURCE_URL); | |
| 102 | 107 | QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL))); |
| 103 | 108 | // TABLET_UI_HACK: TODO: addEventBridge to tablet.... |
| 104 | 109 | } |
| @@ -168,6 +173,8 @@ void TabletProxy::addButtonsToHomeScreen() { · 63 unmodified lines | ||
| 168 | 173 | for (auto& buttonProxy : _tabletButtonProxies) { |
| 169 | 174 | addButtonProxyToQmlTablet(tablet, buttonProxy.data()); |
| 170 | 175 | } |
| 176 | + auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader"); | |
| 177 | + QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen())); | |
| 171 | 178 | } |
| 172 | 179 | |
| 173 | 180 | void TabletProxy::removeButtonsFromHomeScreen() { |