From b3911e466fef1c0a861f095a7f58bf05e25fe624 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Tue, 11 Dec 2018 16:04:30 -0800 Subject: [PATCH] feedback changes/don't switch modes on login in-world --- interface/src/ui/LoginDialog.cpp | 1 + interface/src/ui/LoginDialog.h | 2 ++ interface/src/ui/overlays/Web3DOverlay.cpp | 10 ++++++---- interface/src/ui/overlays/Web3DOverlay.h | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp index 27cee4ddd0..dc5422e488 100644 --- a/interface/src/ui/LoginDialog.cpp +++ b/interface/src/ui/LoginDialog.cpp @@ -33,6 +33,7 @@ HIFI_QML_DEF(LoginDialog) static const QUrl TABLET_LOGIN_DIALOG_URL("dialogs/TabletLoginDialog.qml"); +const QUrl OVERLAY_LOGIN_DIALOG = PathUtils::qmlUrl("dialogs/OverlayLoginDialog.qml"); LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) { auto accountManager = DependencyManager::get(); diff --git a/interface/src/ui/LoginDialog.h b/interface/src/ui/LoginDialog.h index cada7724fc..c9f12b691d 100644 --- a/interface/src/ui/LoginDialog.h +++ b/interface/src/ui/LoginDialog.h @@ -18,6 +18,8 @@ class QNetworkReply; +extern const QUrl OVERLAY_LOGIN_DIALOG; + class LoginDialog : public OffscreenQmlDialog { Q_OBJECT Q_PROPERTY(bool isLogIn READ getIsLogIn WRITE setIsLogIn) diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp index 3f06b43a9e..78153a7a9d 100644 --- a/interface/src/ui/overlays/Web3DOverlay.cpp +++ b/interface/src/ui/overlays/Web3DOverlay.cpp @@ -49,6 +49,7 @@ #include "avatar/AvatarManager.h" #include "AudioClient.h" #include "LODManager.h" +#include "ui/LoginDialog.h" #include "ui/OctreeStatsProvider.h" #include "ui/DomainConnectionModel.h" #include "ui/AvatarInputs.h" @@ -190,7 +191,7 @@ void Web3DOverlay::buildWebSurface() { } else { _webSurface = QSharedPointer(new OffscreenQmlSurface(), qmlSurfaceDeleter); connect(_webSurface.data(), &hifi::qml::OffscreenSurface::rootContextCreated, [this](QQmlContext* surfaceContext) { - setupQmlSurface(_url == TabletScriptingInterface::QML); + setupQmlSurface(_url == TabletScriptingInterface::QML, _url == OVERLAY_LOGIN_DIALOG.toString()); }); _webSurface->load(_url); _cachedWebSurface = false; @@ -221,9 +222,8 @@ bool Web3DOverlay::isWebContent() const { return false; } -void Web3DOverlay::setupQmlSurface(bool isTablet) { +void Web3DOverlay::setupQmlSurface(bool isTablet, bool isLoginDialog) { _webSurface->getSurfaceContext()->setContextProperty("Users", DependencyManager::get().data()); - _webSurface->getSurfaceContext()->setContextProperty("Account", AccountServicesScriptingInterface::getInstance()); // DEPRECATED - TO BE REMOVED _webSurface->getSurfaceContext()->setContextProperty("HMD", DependencyManager::get().data()); _webSurface->getSurfaceContext()->setContextProperty("UserActivityLogger", DependencyManager::get().data()); _webSurface->getSurfaceContext()->setContextProperty("Preferences", DependencyManager::get().data()); @@ -236,7 +236,9 @@ void Web3DOverlay::setupQmlSurface(bool isTablet) { _webSurface->getSurfaceContext()->setContextProperty("MenuInterface", MenuScriptingInterface::getInstance()); _webSurface->getSurfaceContext()->setContextProperty("KeyboardScriptingInterface", DependencyManager::get().data()); - if (isTablet) { + if (isTablet || isLoginDialog) { + _webSurface->getSurfaceContext()->setContextProperty("Account", AccountServicesScriptingInterface::getInstance()); // DEPRECATED - TO BE REMOVED + } else if (isTablet) { auto tabletScriptingInterface = DependencyManager::get(); auto flags = tabletScriptingInterface->getFlags(); diff --git a/interface/src/ui/overlays/Web3DOverlay.h b/interface/src/ui/overlays/Web3DOverlay.h index 4137ed8680..548ad7abe0 100644 --- a/interface/src/ui/overlays/Web3DOverlay.h +++ b/interface/src/ui/overlays/Web3DOverlay.h @@ -79,7 +79,7 @@ protected: Transform evalRenderTransform() override; private: - void setupQmlSurface(bool isTablet); + void setupQmlSurface(bool isTablet, bool isLoginDialog); void rebuildWebSurface(); bool isWebContent() const;