diff --git a/interface/resources/qml/LoginDialog.qml b/interface/resources/qml/LoginDialog.qml index d5db8f9fb1..6ad6cdf93d 100644 --- a/interface/resources/qml/LoginDialog.qml +++ b/interface/resources/qml/LoginDialog.qml @@ -86,10 +86,11 @@ ModalWindow { } } Component.onDestruction: { -/* var data = { - "action": "userOptedOut" - }; - UserActivityLogger.logAction("LoginDialogAction", data); */ - print("destroyed"); + if (closeButtonVisible && clickedCloseButton) { + var data = { + "action": "opted out" + }; + UserActivityLogger.logAction("encourageLoginDialog", data); + } } } diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml index 6637a96fbb..d19837a023 100644 --- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml +++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml @@ -195,22 +195,25 @@ Item { root.isPassword = true; } - Image { - id: showPasswordImage - x: parent.width - ((parent.height) * 31 / 23) - y: (parent.height - (parent.height * 16 / 23)) / 2 - width: parent.width - (parent.width - (((parent.height) * 31/23))) - height: parent.height * 16 / 23 - source: "../../images/eyeOpen.svg" - } - Rectangle { id: showPasswordHitbox z: 10 - x: parent.width - (parent.height * 31/16) + // x: parent.width - (parent.height * 31/16) + x: passwordField.width - ((passwordField.height) * 31 / 23) width: parent.width - (parent.width - (parent.height * 31/16)) + // width: passwordField.width - (passwordField.width - (((passwordField.height) * 31/23))) height: parent.height color: "transparent" + + Image { + id: showPasswordImage + // x: passwordField.width - ((passwordField.height) * 31 / 23) + y: (passwordField.height - (passwordField.height * 16 / 23)) / 2 + width: passwordField.width - (passwordField.width - (((passwordField.height) * 31/23))) + height: passwordField.height * 16 / 23 + source: "../../images/eyeOpen.svg" + } + MouseArea { id: passwordFieldMouseArea anchors.fill: parent diff --git a/interface/resources/qml/dialogs/TabletLoginDialog.qml b/interface/resources/qml/dialogs/TabletLoginDialog.qml index 3be4d8217d..c3889b6a30 100644 --- a/interface/resources/qml/dialogs/TabletLoginDialog.qml +++ b/interface/resources/qml/dialogs/TabletLoginDialog.qml @@ -173,7 +173,7 @@ TabletModalWindow { break } } - onDestroy: { + Component.onDestruction: { var data = { "action": "userOptedOut" }; diff --git a/interface/resources/qml/windows/ModalFrame.qml b/interface/resources/qml/windows/ModalFrame.qml index 820c04f500..cb23ccd5ad 100644 --- a/interface/resources/qml/windows/ModalFrame.qml +++ b/interface/resources/qml/windows/ModalFrame.qml @@ -110,6 +110,7 @@ Frame { glyph: hifi.glyphs.close size: 23 onClicked: { + window.clickedCloseButton = true; window.destroy(); } } diff --git a/interface/resources/qml/windows/ModalWindow.qml b/interface/resources/qml/windows/ModalWindow.qml index 75f5c2d646..ebd5293b0a 100644 --- a/interface/resources/qml/windows/ModalWindow.qml +++ b/interface/resources/qml/windows/ModalWindow.qml @@ -20,6 +20,8 @@ ScrollingWindow { frame: ModalFrame { } property bool closeButtonVisible: false + // only applicable for if close button is visible. + property bool clickedCloseButton: false property int colorScheme: hifi.colorSchemes.light property bool draggable: false diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9a56a757dd..15545a0275 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2308,8 +2308,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo connect(checkLoginTimer, &QTimer::timeout, this, []() { auto accountManager = DependencyManager::get(); auto dialogsManager = DependencyManager::get(); - if (!accountManager->isLoggedIn()) { + if (!accountManager->isLoggedIn() && !qApp->isHMDMode()) { dialogsManager->showLoginDialog(); + QJsonObject loginData = {}; + loginData["action"] = "login dialog shown"; + UserActivityLogger::getInstance().logAction("encourageLoginDialog", loginData); } }); checkLoginTimer->start(); diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp index 8a40ee2f83..31a995c70b 100644 --- a/interface/src/ui/LoginDialog.cpp +++ b/interface/src/ui/LoginDialog.cpp @@ -28,6 +28,7 @@ #include "scripting/HMDScriptingInterface.h" HIFI_QML_DEF(LoginDialog) +Q_LOGGING_CATEGORY(login_dialog, "hifi.login.dialog") LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) { auto accountManager = DependencyManager::get(); @@ -40,6 +41,10 @@ LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) { } +LoginDialog::~LoginDialog() { + qCDebug(login_dialog) << "killing"; +} + void LoginDialog::showWithSelection() { auto tabletScriptingInterface = DependencyManager::get(); diff --git a/interface/src/ui/LoginDialog.h b/interface/src/ui/LoginDialog.h index ad8cab9699..210438b856 100644 --- a/interface/src/ui/LoginDialog.h +++ b/interface/src/ui/LoginDialog.h @@ -15,6 +15,9 @@ #define hifi_LoginDialog_h #include +#include + +Q_DECLARE_LOGGING_CATEGORY(login_dialog) class QNetworkReply; @@ -27,6 +30,8 @@ public: LoginDialog(QQuickItem* parent = nullptr); + virtual ~LoginDialog(); + static void showWithSelection(); signals: void handleLoginCompleted();