diff --git a/interface/resources/qml/OverlayLoginDialog.qml b/interface/resources/qml/OverlayLoginDialog.qml new file mode 100644 index 0000000000..0088282e8e --- /dev/null +++ b/interface/resources/qml/OverlayLoginDialog.qml @@ -0,0 +1,101 @@ +// +// LoginDialog.qml +// +// Created by Wayne Chen +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import Hifi 1.0 +import QtQuick 2.4 + +import "qrc:////qml//controls-uit" as HifiControlsUit +import "qrc:////qml//styles-uit" as HifiStylesUit + +import "LoginDialog" + +FocusScope { + id: root + HifiStylesUit.HifiConstants { id: hifi } + objectName: "LoginDialog" + visible: true + + anchors.fill: parent + + readonly property bool isTablet: false + readonly property bool isOverlay: true + property bool keyboardEnabled: false + property bool keyboardRaised: false + property bool punctuationMode: false + property bool isPassword: false + property string iconText: "" + property int iconSize: 50 + + property string title: "" + property int titleWidth: 0 + property alias text: loginKeyboard.mirroredText + + function tryDestroy() { + root.destroy() + } + + LoginDialog { + id: loginDialog + anchors.fill: parent + Loader { + id: bodyLoader + anchors.fill: parent + } + } + HifiControlsUit.Keyboard { + id: loginKeyboard + raised: root.keyboardEnabled && root.keyboardRaised + numeric: root.punctuationMode + password: root.isPassword + anchors { + left: parent.left + right: parent.right + bottom: parent.bottom + } + } + + Keys.onPressed: { + if (!visible) { + return + } + + if (event.modifiers === Qt.ControlModifier) + switch (event.key) { + case Qt.Key_A: + event.accepted = true + detailedText.selectAll() + break + case Qt.Key_C: + event.accepted = true + detailedText.copy() + break + case Qt.Key_Period: + if (Qt.platform.os === "osx") { + event.accepted = true + content.reject() + } + break + } else switch (event.key) { + case Qt.Key_Escape: + case Qt.Key_Back: + event.accepted = true + break + + case Qt.Key_Enter: + case Qt.Key_Return: + event.accepted = true + break + } + } + + Component.onCompleted: { + bodyLoader.setSource("LoginDialog/LinkAccountBody.qml", { "loginDialog": loginDialog, "root": root, "bodyLoader": bodyLoader }); + } +}