make login screen show up on the tablet on startup

This commit is contained in:
Dante Ruiz 2017-03-27 18:03:38 +01:00
parent 8a678dfb04
commit f4255735a9
3 changed files with 23 additions and 5 deletions

View file

@ -47,11 +47,11 @@ 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(); qDebug() << "[DR] -> Push login onto the tablet";
} else { tablet->initialScreen(url);
static const QUrl url("../../dialogs/TabletLoginDialog.qml"); if (!hmd->getShouldShowTablet()) {
tablet->pushOntoStack(url); hmd->openTablet();
} }
} }
} }

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;