History

Home button fix

Dante Ruiz committed 9 years ago

Commit a30ad271 parent 0c2d08d2 files · +13 −4Browse files

Showing the changes to libraries/script-engine/src/TabletScriptingInterface.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/TabletScriptingInterface.cpp+9−2
@@ -44,7 +44,7 @@ void TabletScriptingInterface::setQmlTabletRoot(QString tabletId, QQuickItem* qm · 43 unmodified lines
4444
4545 static const char* TABLET_SOURCE_URL = "Tablet.qml";
4646 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";
4848
4949 TabletProxy::TabletProxy(QString name) : _name(name) {
5050 ;
@@ -79,6 +79,8 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr · 28 unmodified lines
7979 if (_qmlTabletRoot && _qmlOffscreenSurface) {
8080 QObject::connect(_qmlOffscreenSurface, SIGNAL(webEventReceived(QVariant)), this, SIGNAL(webEventReceived(QVariant)));
8181 gotoHomeScreen();
82+ //auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
83+ //QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen()));
8284 } else {
8385 removeButtonsFromHomeScreen();
8486 }
@@ -88,8 +90,10 @@ void TabletProxy::gotoHomeScreen() { · 3 unmodified lines
8890 if (_qmlTabletRoot) {
8991 QString tabletSource = _qmlTabletRoot->property(LOADER_SOURCE_PROPERTY_NAME).toString();
9092 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()));
9196 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(TABLET_SOURCE_URL)));
92− addButtonsToHomeScreen();
9397 }
9498 }
9599 }
@@ -99,6 +103,7 @@ void TabletProxy::gotoWebScreen(const QString& url) { · 3 unmodified lines
99103 removeButtonsFromHomeScreen();
100104 QString tabletSource = _qmlTabletRoot->property(LOADER_SOURCE_PROPERTY_NAME).toString();
101105 if (tabletSource != WEB_VIEW_SOURCE_URL) {
106+ _qmlTabletRoot->setProperty(LOADER_SOURCE_PROPERTY_NAME, WEB_VIEW_SOURCE_URL);
102107 QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(WEB_VIEW_SOURCE_URL)));
103108 // TABLET_UI_HACK: TODO: addEventBridge to tablet....
104109 }
@@ -168,6 +173,8 @@ void TabletProxy::addButtonsToHomeScreen() { · 63 unmodified lines
168173 for (auto& buttonProxy : _tabletButtonProxies) {
169174 addButtonProxyToQmlTablet(tablet, buttonProxy.data());
170175 }
176+ auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
177+ QObject::disconnect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToHomeScreen()));
171178 }
172179
173180 void TabletProxy::removeButtonsFromHomeScreen() {