From c42adc9e00dbec41338718c0ebd5172e8017eabd Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Wed, 5 Aug 2020 00:14:27 -0400 Subject: [PATCH] Add menu items and triggers. --- interface/src/Menu.cpp | 11 +++++++++++ interface/src/ui/DialogsManager.cpp | 22 +++++++++++++++++++--- interface/src/ui/DialogsManager.h | 7 +++++-- interface/src/ui/LoginDialog.cpp | 2 +- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 0ed5f67ea0..dbe60c4b7e 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -9,6 +9,10 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +// For happ(ier) development of QML, use these two things: +// This forces QML files to be pulled from the source as you edit it: HIFI_USE_SOURCE_TREE_RESOURCES=1 +// Use this to live reload: DependencyManager::get()->clearCache(); + #include "Menu.h" #include #include @@ -84,6 +88,13 @@ Menu::Menu() { dialogsManager.data(), &DialogsManager::toggleLoginDialog); } + auto domainLogin = addActionToQMenuAndActionHash(fileMenu, "Domain: Log In"); + connect(domainLogin, &QAction::triggered, [] { + auto dialogsManager = DependencyManager::get(); + dialogsManager->requestDomainLoginState(); + dialogsManager->showDomainLoginDialog(); + }); + // File > Quit addActionToQMenuAndActionHash(fileMenu, MenuOption::Quit, Qt::CTRL | Qt::Key_Q, qApp, SLOT(quit()), QAction::QuitRole); diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index 3aaed2d3ec..01bf69178f 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -110,13 +110,29 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) { } } -void DialogsManager::requestMetaverseLogin() { - DialogsManager::setDomainLogin(false); +void DialogsManager::requestMetaverseLoginState() { + DialogsManager::setMetaverseLoginState(); +} + +void DialogsManager::requestDomainLoginState() { + DialogsManager::setDomainLoginState(); +} + +void DialogsManager::setMetaverseLoginState() { + // We're only turning off the domain login trigger but the actual domain auth URL is still saved. + // So we can continue the domain login if desired. + _isDomainLogin = false; +} + +void DialogsManager::setDomainLoginState() { + _isDomainLogin = true; } void DialogsManager::setDomainLogin(bool isDomainLogin, const QString& domain) { _isDomainLogin = isDomainLogin; - _domainLoginDomain = domain; + if (!domain.isEmpty()) { + _domainLoginDomain = domain; + } } void DialogsManager::toggleLoginDialog() { diff --git a/interface/src/ui/DialogsManager.h b/interface/src/ui/DialogsManager.h index 07d9de82b0..0f391d9758 100644 --- a/interface/src/ui/DialogsManager.h +++ b/interface/src/ui/DialogsManager.h @@ -41,7 +41,8 @@ public: QPointer getTestingDialog() const { return _testingDialog; } void emitAddressBarShown(bool visible) { emit addressBarShown(visible); } void setAddressBarVisible(bool addressBarVisible); - void requestMetaverseLogin(); + void requestMetaverseLoginState(); + void requestDomainLoginState(); bool getIsDomainLogin() { return _isDomainLogin; } QString getDomainLoginDomain() { return _domainLoginDomain; } @@ -53,7 +54,7 @@ public slots: void toggleLoginDialog(); void showLoginDialog(); void hideLoginDialog(); - void showDomainLoginDialog(const QString& domain); + void showDomainLoginDialog(const QString& domain = ""); void octreeStatsDetails(); void lodTools(); void hmdTools(bool showTools); @@ -89,6 +90,8 @@ private: bool _addressBarVisible { false }; void setDomainLogin(bool isDomainLogin, const QString& domain = ""); + void setMetaverseLoginState(); + void setDomainLoginState(); bool _isDomainLogin { false }; QString _domainLoginDomain; }; diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp index 46e31070b8..71ae1eec83 100644 --- a/interface/src/ui/LoginDialog.cpp +++ b/interface/src/ui/LoginDialog.cpp @@ -108,7 +108,7 @@ void LoginDialog::toggleAction() { // if not in login state, show. if (!qApp->getLoginDialogPoppedUp()) { auto dialogsManager = DependencyManager::get(); - dialogsManager->requestMetaverseLogin(); + dialogsManager->requestMetaverseLoginState(); LoginDialog::showWithSelection(); } });