mirror of
https://github.com/lubosz/overte.git
synced 2025-04-25 17:35:21 +02:00
157 lines
3.8 KiB
QML
157 lines
3.8 KiB
QML
//
|
|
// 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 controlsUit 1.0 as HifiControlsUit
|
|
import stylesUit 1.0 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
|
|
property alias bannerWidth: banner.width
|
|
property alias bannerHeight: banner.height
|
|
|
|
function tryDestroy() {
|
|
root.destroy()
|
|
}
|
|
|
|
LoginDialog {
|
|
id: loginDialog
|
|
anchors.fill: parent
|
|
Loader {
|
|
id: bodyLoader
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
|
|
Image {
|
|
z: -10
|
|
id: loginDialogBackground
|
|
fillMode: Image.PreserveAspectCrop
|
|
source: "LoginDialog/images/background.png"
|
|
anchors.fill: parent
|
|
}
|
|
|
|
Rectangle {
|
|
z: -6
|
|
id: opaqueRect
|
|
height: parent.height
|
|
width: parent.width
|
|
opacity: 0.65
|
|
color: "black"
|
|
}
|
|
|
|
Item {
|
|
z: -5
|
|
id: bannerContainer
|
|
width: parent.width
|
|
height: banner.height
|
|
anchors {
|
|
top: parent.top
|
|
topMargin: 0.18 * parent.height
|
|
}
|
|
Image {
|
|
id: banner
|
|
anchors.centerIn: parent
|
|
sourceSize.width: 346
|
|
sourceSize.height: 91
|
|
source: "../images/brand-banner.svg"
|
|
horizontalAlignment: Image.AlignHCenter
|
|
}
|
|
}
|
|
|
|
Timer {
|
|
id: keyboardTimer
|
|
repeat: false
|
|
interval: 200
|
|
|
|
onTriggered: {
|
|
if (MenuInterface.isOptionChecked("Use 3D Keyboard")) {
|
|
KeyboardScriptingInterface.raised = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
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.onDestruction: {
|
|
loginKeyboard.raised = false;
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
keyboardTimer.start();
|
|
bodyLoader.setSource("LoginDialog/LinkAccountBody.qml", { "loginDialog": loginDialog, "root": root, "bodyLoader": bodyLoader, "linkSteam": false, "linkOculus": false });
|
|
}
|
|
}
|