Merge pull request #10018 from druiz17/tablet-login

Show login screen in tablet at startup if not logged in and connecting to a domain that requires login
This commit is contained in:
Seth Alves 2017-03-27 10:10:41 -08:00 committed by GitHub
commit 9c990b0358
3 changed files with 22 additions and 5 deletions

View file

@ -47,11 +47,10 @@ void LoginDialog::showWithSelection()
if (tablet->getToolbarMode()) { if (tablet->getToolbarMode()) {
LoginDialog::show(); LoginDialog::show();
} else { } else {
if (!hmd->getShouldShowTablet() && !qApp->isHMDMode()) { static const QUrl url("../../dialogs/TabletLoginDialog.qml");
LoginDialog::show(); tablet->initialScreen(url);
} else { if (!hmd->getShouldShowTablet()) {
static const QUrl url("../../dialogs/TabletLoginDialog.qml"); hmd->openTablet();
tablet->pushOntoStack(url);
} }
} }
} }

View file

@ -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() { bool TabletProxy::isMessageDialogOpen() {
if (_qmlTabletRoot) { if (_qmlTabletRoot) {
QVariant result; QVariant result;
@ -299,6 +308,11 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername()))); QMetaObject::invokeMethod(_qmlTabletRoot, "setUsername", Q_ARG(const QVariant&, QVariant(getUsername())));
} }
}); });
if (_initialScreen) {
pushOntoStack(_initialPath);
_initialScreen = false;
}
} else { } else {
removeButtonsFromHomeScreen(); removeButtonsFromHomeScreen();
_state = State::Uninitialized; _state = State::Uninitialized;

View file

@ -97,6 +97,8 @@ public:
bool getToolbarMode() const { return _toolbarMode; } bool getToolbarMode() const { return _toolbarMode; }
void setToolbarMode(bool toolbarMode); void setToolbarMode(bool toolbarMode);
void initialScreen(const QVariant& url);
/**jsdoc /**jsdoc
* transition to the home screen * transition to the home screen
* @function TabletProxy#gotoHomeScreen * @function TabletProxy#gotoHomeScreen
@ -213,6 +215,8 @@ protected:
void addButtonsToToolbar(); void addButtonsToToolbar();
void removeButtonsFromToolbar(); void removeButtonsFromToolbar();
bool _initialScreen { false };
QVariant _initialPath { "" };
QString _name; QString _name;
std::mutex _mutex; std::mutex _mutex;
std::vector<QSharedPointer<TabletButtonProxy>> _tabletButtonProxies; std::vector<QSharedPointer<TabletButtonProxy>> _tabletButtonProxies;