From 0e8f019b8af0bdcaca6eebd0cc6a1f0978c6c4bc Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Tue, 4 Aug 2020 20:00:24 -0400 Subject: [PATCH] Further things kinda working. --- .../qml/LoginDialog/LinkAccountBody.qml | 1 + interface/src/Application.cpp | 37 +++++++++++++++---- interface/src/ui/LoginDialog.cpp | 4 +- .../networking/src/DomainAccountManager.h | 2 + 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml index 6b3fcb1788..4f46e392f0 100644 --- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml +++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml @@ -651,6 +651,7 @@ Item { Text { id: loginSkipTipText text: qsTr("Not all domains require you to have a metaverse account. \n Some domains have their own login dialogs.") + wrapMode: Text.WordWrap visible: !linkAccountBody.isLoggingInToDomain anchors { top: dismissButton.bottom diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 2c6702fbfc..f2b708793f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1355,7 +1355,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo auto domainAccountManager = DependencyManager::get(); connect(domainAccountManager.data(), &DomainAccountManager::authRequired, dialogsManager.data(), &DialogsManager::showDomainLoginDialog); - + + connect(domainAccountManager.data(), &DomainAccountManager::loginComplete, this, + &Application::updateWindowTitle); // ####### TODO: Connect any other signals from domainAccountManager. @@ -7079,20 +7081,24 @@ void Application::updateWindowTitle() const { auto nodeList = DependencyManager::get(); auto accountManager = DependencyManager::get(); + auto domainAccountManager = DependencyManager::get(); auto isInErrorState = nodeList->getDomainHandler().isInErrorState(); + bool isMetaverseLoggedIn = accountManager->isLoggedIn(); + bool isDomainLoggedIn = domainAccountManager->isLoggedIn(); + qCDebug(interfaceapp) << "Is Logged Into Domain:" << isDomainLoggedIn; QString buildVersion = " - Vircadia - " + (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build")) + " " + applicationVersion(); - // ####### TODO - QString loginStatus = accountManager->isLoggedIn() ? "" : " (NOT LOGGED IN)"; - QString connectionStatus = isInErrorState ? " (ERROR CONNECTING)" : nodeList->getDomainHandler().isConnected() ? "" : " (NOT CONNECTED)"; - QString username = accountManager->getAccountInfo().getUsername(); - setCrashAnnotation("sentry[user][username]", username.toStdString()); + QString metaverseUsername = accountManager->getAccountInfo().getUsername(); + // ###### TODO + // QString domainUsername = domainAccountManager->getUsername(); + + setCrashAnnotation("sentry[user][metaverseUsername]", metaverseUsername.toStdString()); QString currentPlaceName; if (isServerlessMode()) { @@ -7108,8 +7114,23 @@ void Application::updateWindowTitle() const { } } - QString title = QString() + (!username.isEmpty() ? username + " @ " : QString()) - + currentPlaceName + connectionStatus + loginStatus + buildVersion; + QString metaverseDetails; + if (isMetaverseLoggedIn) { + metaverseDetails = "Metaverse: Logged in as " + metaverseUsername; + } else { + metaverseDetails = "Metaverse: Not Logged In"; + } + + QString domainDetails; + if (isDomainLoggedIn) { + // domainDetails = "Domain: Logged in as " + domainUsername; + domainDetails = "Domain: Logged In"; + } else { + domainDetails = "Domain: Not Logged In"; + } + + QString title = QString() + currentPlaceName + connectionStatus + " (" + metaverseDetails + " - " + domainDetails + ")" + + buildVersion; #ifndef WIN32 // crashes with vs2013/win32 diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp index c7597c5658..4f8a3ca2bc 100644 --- a/interface/src/ui/LoginDialog.cpp +++ b/interface/src/ui/LoginDialog.cpp @@ -99,11 +99,11 @@ void LoginDialog::toggleAction() { if (accountManager->isLoggedIn()) { // change the menu item to logout - loginAction->setText("Logout " + accountManager->getAccountInfo().getUsername()); + loginAction->setText("Metaverse: Logout " + accountManager->getAccountInfo().getUsername()); connection = connect(loginAction, &QAction::triggered, accountManager.data(), &AccountManager::logout); } else { // change the menu item to login - loginAction->setText("Log In / Sign Up"); + loginAction->setText("Metaverse: Log In / Sign Up"); connection = connect(loginAction, &QAction::triggered, [] { // if not in login state, show. if (!qApp->getLoginDialogPoppedUp()) { diff --git a/libraries/networking/src/DomainAccountManager.h b/libraries/networking/src/DomainAccountManager.h index 0388ba1f5a..1590e4d467 100644 --- a/libraries/networking/src/DomainAccountManager.h +++ b/libraries/networking/src/DomainAccountManager.h @@ -30,6 +30,8 @@ public: QString getAccessToken() { return _access_token; } QString getRefreshToken() { return _refresh_token; } + bool isLoggedIn() { return hasValidAccessToken(); } + Q_INVOKABLE bool checkAndSignalForAccessToken(); public slots: