From f4255735a9fa1448af9690094ad25fca775dad89 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Mon, 27 Mar 2017 18:03:38 +0100 Subject: [PATCH] make login screen show up on the tablet on startup --- interface/src/ui/LoginDialog.cpp | 10 +++++----- .../script-engine/src/TabletScriptingInterface.cpp | 14 ++++++++++++++ .../script-engine/src/TabletScriptingInterface.h | 4 ++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp index dce76eb661..1fe09e7cec 100644 --- a/interface/src/ui/LoginDialog.cpp +++ b/interface/src/ui/LoginDialog.cpp @@ -47,11 +47,11 @@ void LoginDialog::showWithSelection() if (tablet->getToolbarMode()) { LoginDialog::show(); } else { - if (!hmd->getShouldShowTablet() && !qApp->isHMDMode()) { - LoginDialog::show(); - } else { - static const QUrl url("../../dialogs/TabletLoginDialog.qml"); - tablet->pushOntoStack(url); + static const QUrl url("../../dialogs/TabletLoginDialog.qml"); + qDebug() << "[DR] -> Push login onto the tablet"; + tablet->initialScreen(url); + if (!hmd->getShouldShowTablet()) { + hmd->openTablet(); } } } diff --git a/libraries/script-engine/src/TabletScriptingInterface.cpp b/libraries/script-engine/src/TabletScriptingInterface.cpp index 054cf83744..c287fbcfe7 100644 --- a/libraries/script-engine/src/TabletScriptingInterface.cpp +++ b/libraries/script-engine/src/TabletScriptingInterface.cpp @@ -250,6 +250,15 @@ static QString getUsername() { } } +void TabletProxy::initialScreen(const QVariant& url) { + if (getQmlTablet()) { + pushOntoStack(url); + } else { + _initialScreen = true; + _initialPath = url; + } +} + bool TabletProxy::isMessageDialogOpen() { if (_qmlTabletRoot) { QVariant result; @@ -299,6 +308,11 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername()))); } }); + + if (_initialScreen) { + pushOntoStack(_initialPath); + _initialScreen = false; + } } else { removeButtonsFromHomeScreen(); _state = State::Uninitialized; diff --git a/libraries/script-engine/src/TabletScriptingInterface.h b/libraries/script-engine/src/TabletScriptingInterface.h index acc53653f8..2e7b91fa4c 100644 --- a/libraries/script-engine/src/TabletScriptingInterface.h +++ b/libraries/script-engine/src/TabletScriptingInterface.h @@ -97,6 +97,8 @@ public: bool getToolbarMode() const { return _toolbarMode; } void setToolbarMode(bool toolbarMode); + void initialScreen(const QVariant& url); + /**jsdoc * transition to the home screen * @function TabletProxy#gotoHomeScreen @@ -213,6 +215,8 @@ protected: void addButtonsToToolbar(); void removeButtonsFromToolbar(); + bool _initialScreen { false }; + QVariant _initialPath { "" }; QString _name; std::mutex _mutex; std::vector> _tabletButtonProxies;