Merge branch 'master' of github.com:highfidelity/hifi into scale-wearables-with-avatar-3
|
@ -1,127 +0,0 @@
|
||||||
<!-- Copyright 2016 High Fidelity, Inc. -->
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8"/>
|
|
||||||
<input type="hidden" id="version" value="1"/>
|
|
||||||
<title>Welcome to Interface</title>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background: black;
|
|
||||||
width: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#kbm_button {
|
|
||||||
position: absolute;
|
|
||||||
left: 70;
|
|
||||||
top: 118;
|
|
||||||
width: 297;
|
|
||||||
height: 80;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hand_controllers_button {
|
|
||||||
position: absolute;
|
|
||||||
left: 367;
|
|
||||||
top: 118;
|
|
||||||
width: 267;
|
|
||||||
height: 80;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game_controller_button {
|
|
||||||
position: absolute;
|
|
||||||
left: 634;
|
|
||||||
top: 118;
|
|
||||||
width: 297;
|
|
||||||
height: 80;
|
|
||||||
}
|
|
||||||
|
|
||||||
#image_area {
|
|
||||||
width: 1024;
|
|
||||||
height: 720;
|
|
||||||
margin: auto;
|
|
||||||
position: absolute;
|
|
||||||
top: 0; left: 0; bottom: 0; right: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script>
|
|
||||||
var handControllerImageURL = null;
|
|
||||||
|
|
||||||
function showKbm() {
|
|
||||||
document.getElementById("main_image").setAttribute("src", "img/controls-help-keyboard.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
function showHandControllers() {
|
|
||||||
document.getElementById("main_image").setAttribute("src", handControllerImageURL);
|
|
||||||
}
|
|
||||||
|
|
||||||
function showGamepad() {
|
|
||||||
document.getElementById("main_image").setAttribute("src", "img/controls-help-gamepad.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is not meant to be a complete or hardened query string parser - it only
|
|
||||||
// needs to handle the values we send in and have control over.
|
|
||||||
//
|
|
||||||
// queryString is a string of the form "key1=value1&key2=value2&key3&key4=value4"
|
|
||||||
function parseQueryString(queryString) {
|
|
||||||
var params = {};
|
|
||||||
var paramsParts = queryString.split("&");
|
|
||||||
for (var i = 0; i < paramsParts.length; ++i) {
|
|
||||||
var paramKeyValue = paramsParts[i].split("=");
|
|
||||||
if (paramKeyValue.length == 1) {
|
|
||||||
params[paramKeyValue[0]] = undefined;
|
|
||||||
} else if (paramKeyValue.length == 2) {
|
|
||||||
params[paramKeyValue[0]] = paramKeyValue[1];
|
|
||||||
} else {
|
|
||||||
console.error("Error parsing param keyvalue: ", paramParts);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
function load() {
|
|
||||||
var parts = window.location.href.split("?");
|
|
||||||
var params = {};
|
|
||||||
if (parts.length > 0) {
|
|
||||||
params = parseQueryString(parts[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (params.handControllerName) {
|
|
||||||
case "oculus":
|
|
||||||
handControllerImageURL = "img/controls-help-oculus.png";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "vive":
|
|
||||||
default:
|
|
||||||
handControllerImageURL = "img/controls-help-vive.png";
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (params.defaultTab) {
|
|
||||||
case "gamepad":
|
|
||||||
showGamepad();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "handControllers":
|
|
||||||
showHandControllers();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "kbm":
|
|
||||||
default:
|
|
||||||
showKbm();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body onload="load()">
|
|
||||||
<div id="image_area">
|
|
||||||
<img id="main_image" src="img/controls-help-keyboard.png" width="1024px" height="720px"></img>
|
|
||||||
<a href="#" id="kbm_button" onmousedown="showKbm()"></a>
|
|
||||||
<a href="#" id="hand_controllers_button" onmousedown="showHandControllers()"></a>
|
|
||||||
<a href="#" id="game_controller_button" onmousedown="showGamepad()"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 604 KiB After Width: | Height: | Size: 298 KiB |
Before Width: | Height: | Size: 503 KiB After Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 585 KiB After Width: | Height: | Size: 289 KiB |
Before Width: | Height: | Size: 547 KiB After Width: | Height: | Size: 254 KiB |
|
@ -12,9 +12,9 @@
|
||||||
var MAX_WARNINGS = 3;
|
var MAX_WARNINGS = 3;
|
||||||
var numWarnings = 0;
|
var numWarnings = 0;
|
||||||
var isWindowFocused = true;
|
var isWindowFocused = true;
|
||||||
var isKeyboardRaised = false;
|
window.isKeyboardRaised = false;
|
||||||
var isNumericKeyboard = false;
|
window.isNumericKeyboard = false;
|
||||||
var isPasswordField = false;
|
window.isPasswordField = false;
|
||||||
|
|
||||||
function shouldSetPasswordField() {
|
function shouldSetPasswordField() {
|
||||||
var nodeType = document.activeElement.type;
|
var nodeType = document.activeElement.type;
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
var passwordField = shouldSetPasswordField();
|
var passwordField = shouldSetPasswordField();
|
||||||
|
|
||||||
if (isWindowFocused &&
|
if (isWindowFocused &&
|
||||||
(keyboardRaised !== isKeyboardRaised || numericKeyboard !== isNumericKeyboard || passwordField !== isPasswordField)) {
|
(keyboardRaised !== window.isKeyboardRaised || numericKeyboard !== window.isNumericKeyboard || passwordField !== window.isPasswordField)) {
|
||||||
|
|
||||||
if (typeof EventBridge !== "undefined" && EventBridge !== null) {
|
if (typeof EventBridge !== "undefined" && EventBridge !== null) {
|
||||||
EventBridge.emitWebEvent(
|
EventBridge.emitWebEvent(
|
||||||
|
@ -75,20 +75,20 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isKeyboardRaised) {
|
if (!window.isKeyboardRaised) {
|
||||||
scheduleBringToView(250); // Allow time for keyboard to be raised in QML.
|
scheduleBringToView(250); // Allow time for keyboard to be raised in QML.
|
||||||
// 2DO: should it be rather done from 'client area height changed' event?
|
// 2DO: should it be rather done from 'client area height changed' event?
|
||||||
}
|
}
|
||||||
|
|
||||||
isKeyboardRaised = keyboardRaised;
|
window.isKeyboardRaised = keyboardRaised;
|
||||||
isNumericKeyboard = numericKeyboard;
|
window.isNumericKeyboard = numericKeyboard;
|
||||||
isPasswordField = passwordField;
|
window.isPasswordField = passwordField;
|
||||||
}
|
}
|
||||||
}, POLL_FREQUENCY);
|
}, POLL_FREQUENCY);
|
||||||
|
|
||||||
window.addEventListener("click", function () {
|
window.addEventListener("click", function () {
|
||||||
var keyboardRaised = shouldRaiseKeyboard();
|
var keyboardRaised = shouldRaiseKeyboard();
|
||||||
if(keyboardRaised && isKeyboardRaised) {
|
if (keyboardRaised && window.isKeyboardRaised) {
|
||||||
scheduleBringToView(150);
|
scheduleBringToView(150);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
|
|
||||||
window.addEventListener("blur", function () {
|
window.addEventListener("blur", function () {
|
||||||
isWindowFocused = false;
|
isWindowFocused = false;
|
||||||
isKeyboardRaised = false;
|
window.isKeyboardRaised = false;
|
||||||
isNumericKeyboard = false;
|
window.isNumericKeyboard = false;
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
import QtQuick 2.5
|
import QtQuick 2.5
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
import QtQuick.Controls 2.2 as QQC2
|
||||||
|
|
||||||
import "../styles-uit"
|
import "../styles-uit"
|
||||||
|
|
||||||
|
@ -24,6 +25,45 @@ TableView {
|
||||||
|
|
||||||
model: ListModel { }
|
model: ListModel { }
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
if (flickableItem !== null && flickableItem !== undefined) {
|
||||||
|
tableView.flickableItem.QQC2.ScrollBar.vertical = scrollbar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QQC2.ScrollBar {
|
||||||
|
id: scrollbar
|
||||||
|
parent: tableView.flickableItem
|
||||||
|
policy: QQC2.ScrollBar.AsNeeded
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
visible: size < 1.0
|
||||||
|
topPadding: tableView.headerVisible ? hifi.dimensions.tableHeaderHeight + 1 : 1
|
||||||
|
anchors.top: tableView.top
|
||||||
|
anchors.left: tableView.right
|
||||||
|
anchors.bottom: tableView.bottom
|
||||||
|
|
||||||
|
background: Item {
|
||||||
|
implicitWidth: hifi.dimensions.scrollbarBackgroundWidth
|
||||||
|
Rectangle {
|
||||||
|
anchors {
|
||||||
|
fill: parent;
|
||||||
|
topMargin: tableView.headerVisible ? hifi.dimensions.tableHeaderHeight : 0
|
||||||
|
}
|
||||||
|
color: isLightColorScheme ? hifi.colors.tableScrollBackgroundLight
|
||||||
|
: hifi.colors.tableScrollBackgroundDark
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: Item {
|
||||||
|
implicitWidth: hifi.dimensions.scrollbarHandleWidth
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
radius: (width - 4)/2
|
||||||
|
color: isLightColorScheme ? hifi.colors.tableScrollHandleLight : hifi.colors.tableScrollHandleDark
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
headerVisible: false
|
headerVisible: false
|
||||||
headerDelegate: Rectangle {
|
headerDelegate: Rectangle {
|
||||||
height: hifi.dimensions.tableHeaderHeight
|
height: hifi.dimensions.tableHeaderHeight
|
||||||
|
@ -98,74 +138,13 @@ TableView {
|
||||||
backgroundVisible: true
|
backgroundVisible: true
|
||||||
|
|
||||||
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
||||||
verticalScrollBarPolicy: Qt.ScrollBarAsNeeded
|
verticalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
||||||
|
|
||||||
style: TableViewStyle {
|
style: TableViewStyle {
|
||||||
// Needed in order for rows to keep displaying rows after end of table entries.
|
// Needed in order for rows to keep displaying rows after end of table entries.
|
||||||
backgroundColor: tableView.isLightColorScheme ? hifi.colors.tableBackgroundLight : hifi.colors.tableBackgroundDark
|
backgroundColor: tableView.isLightColorScheme ? hifi.colors.tableBackgroundLight : hifi.colors.tableBackgroundDark
|
||||||
alternateBackgroundColor: tableView.isLightColorScheme ? hifi.colors.tableRowLightOdd : hifi.colors.tableRowDarkOdd
|
alternateBackgroundColor: tableView.isLightColorScheme ? hifi.colors.tableRowLightOdd : hifi.colors.tableRowDarkOdd
|
||||||
|
|
||||||
padding.top: headerVisible ? hifi.dimensions.tableHeaderHeight: 0
|
padding.top: headerVisible ? hifi.dimensions.tableHeaderHeight: 0
|
||||||
|
|
||||||
handle: Item {
|
|
||||||
id: scrollbarHandle
|
|
||||||
implicitWidth: hifi.dimensions.scrollbarHandleWidth
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
fill: parent
|
|
||||||
topMargin: 3
|
|
||||||
bottomMargin: 3 // ""
|
|
||||||
leftMargin: 1 // Move it right
|
|
||||||
rightMargin: -1 // ""
|
|
||||||
}
|
|
||||||
radius: hifi.dimensions.scrollbarHandleWidth/2
|
|
||||||
color: isLightColorScheme ? hifi.colors.tableScrollHandleLight : hifi.colors.tableScrollHandleDark
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scrollBarBackground: Item {
|
|
||||||
implicitWidth: hifi.dimensions.scrollbarBackgroundWidth
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
fill: parent
|
|
||||||
margins: -1 // Expand
|
|
||||||
topMargin: -1
|
|
||||||
}
|
|
||||||
color: isLightColorScheme ? hifi.colors.tableScrollBackgroundLight : hifi.colors.tableScrollBackgroundDark
|
|
||||||
|
|
||||||
// Extend header color above scrollbar background
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
topMargin: -hifi.dimensions.tableHeaderHeight
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
height: hifi.dimensions.tableHeaderHeight
|
|
||||||
color: tableView.isLightColorScheme ? hifi.colors.tableBackgroundLight : hifi.colors.tableBackgroundDark
|
|
||||||
visible: headerVisible
|
|
||||||
}
|
|
||||||
Rectangle {
|
|
||||||
// Extend header bottom border
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
height: 1
|
|
||||||
color: isLightColorScheme ? hifi.colors.lightGrayText : hifi.colors.baseGrayHighlight
|
|
||||||
visible: headerVisible
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
incrementControl: Item {
|
|
||||||
visible: false
|
|
||||||
}
|
|
||||||
|
|
||||||
decrementControl: Item {
|
|
||||||
visible: false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rowDelegate: Rectangle {
|
rowDelegate: Rectangle {
|
||||||
|
|
|
@ -9,9 +9,11 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
import QtQml.Models 2.2
|
import QtQml.Models 2.2
|
||||||
import QtQuick 2.5
|
import QtQuick 2.7
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
import QtQuick.Controls 2.2 as QQC2
|
||||||
|
|
||||||
|
|
||||||
import "../styles-uit"
|
import "../styles-uit"
|
||||||
|
|
||||||
|
@ -35,6 +37,45 @@ TreeView {
|
||||||
|
|
||||||
headerVisible: false
|
headerVisible: false
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
if (flickableItem !== null && flickableItem !== undefined) {
|
||||||
|
treeView.flickableItem.QQC2.ScrollBar.vertical = scrollbar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QQC2.ScrollBar {
|
||||||
|
id: scrollbar
|
||||||
|
parent: treeView.flickableItem
|
||||||
|
policy: QQC2.ScrollBar.AsNeeded
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
visible: size < 1.0
|
||||||
|
topPadding: treeView.headerVisible ? hifi.dimensions.tableHeaderHeight + 1 : 1
|
||||||
|
anchors.top: treeView.top
|
||||||
|
anchors.left: treeView.right
|
||||||
|
anchors.bottom: treeView.bottom
|
||||||
|
|
||||||
|
background: Item {
|
||||||
|
implicitWidth: hifi.dimensions.scrollbarBackgroundWidth
|
||||||
|
Rectangle {
|
||||||
|
anchors {
|
||||||
|
fill: parent;
|
||||||
|
topMargin: treeView.headerVisible ? hifi.dimensions.tableHeaderHeight: 0
|
||||||
|
}
|
||||||
|
color: isLightColorScheme ? hifi.colors.tableScrollBackgroundLight
|
||||||
|
: hifi.colors.tableScrollBackgroundDark
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: Item {
|
||||||
|
implicitWidth: hifi.dimensions.scrollbarHandleWidth
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
radius: (width - 4)/2
|
||||||
|
color: isLightColorScheme ? hifi.colors.tableScrollHandleLight : hifi.colors.tableScrollHandleDark
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Use rectangle to draw border with rounded corners.
|
// Use rectangle to draw border with rounded corners.
|
||||||
frameVisible: false
|
frameVisible: false
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -50,7 +91,7 @@ TreeView {
|
||||||
backgroundVisible: true
|
backgroundVisible: true
|
||||||
|
|
||||||
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
||||||
verticalScrollBarPolicy: Qt.ScrollBarAsNeeded
|
verticalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
||||||
|
|
||||||
style: TreeViewStyle {
|
style: TreeViewStyle {
|
||||||
// Needed in order for rows to keep displaying rows after end of table entries.
|
// Needed in order for rows to keep displaying rows after end of table entries.
|
||||||
|
@ -126,66 +167,6 @@ TreeView {
|
||||||
leftMargin: hifi.dimensions.tablePadding / 2
|
leftMargin: hifi.dimensions.tablePadding / 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handle: Item {
|
|
||||||
id: scrollbarHandle
|
|
||||||
implicitWidth: hifi.dimensions.scrollbarHandleWidth
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
fill: parent
|
|
||||||
topMargin: treeView.headerVisible ? hifi.dimensions.tableHeaderHeight + 3 : 3
|
|
||||||
bottomMargin: 3 // ""
|
|
||||||
leftMargin: 1 // Move it right
|
|
||||||
rightMargin: -1 // ""
|
|
||||||
}
|
|
||||||
radius: hifi.dimensions.scrollbarHandleWidth / 2
|
|
||||||
color: treeView.isLightColorScheme ? hifi.colors.tableScrollHandleLight : hifi.colors.tableScrollHandleDark
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scrollBarBackground: Item {
|
|
||||||
implicitWidth: hifi.dimensions.scrollbarBackgroundWidth
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
fill: parent
|
|
||||||
topMargin: treeView.headerVisible ? hifi.dimensions.tableHeaderHeight - 1 : -1
|
|
||||||
margins: -1 // Expand
|
|
||||||
}
|
|
||||||
color: treeView.isLightColorScheme ? hifi.colors.tableScrollBackgroundLight : hifi.colors.tableScrollBackgroundDark
|
|
||||||
|
|
||||||
// Extend header color above scrollbar background
|
|
||||||
Rectangle {
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
topMargin: -hifi.dimensions.tableHeaderHeight
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
height: hifi.dimensions.tableHeaderHeight
|
|
||||||
color: treeView.isLightColorScheme ? hifi.colors.tableBackgroundLight : hifi.colors.tableBackgroundDark
|
|
||||||
visible: treeView.headerVisible
|
|
||||||
}
|
|
||||||
Rectangle {
|
|
||||||
// Extend header bottom border
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
height: 1
|
|
||||||
color: treeView.isLightColorScheme ? hifi.colors.lightGrayText : hifi.colors.baseGrayHighlight
|
|
||||||
visible: treeView.headerVisible
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
incrementControl: Item {
|
|
||||||
visible: false
|
|
||||||
}
|
|
||||||
|
|
||||||
decrementControl: Item {
|
|
||||||
visible: false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rowDelegate: Rectangle {
|
rowDelegate: Rectangle {
|
||||||
|
|
|
@ -47,6 +47,7 @@ Rectangle {
|
||||||
} else if (walletStatus === 1) {
|
} else if (walletStatus === 1) {
|
||||||
if (root.activeView !== "walletSetup") {
|
if (root.activeView !== "walletSetup") {
|
||||||
root.activeView = "walletSetup";
|
root.activeView = "walletSetup";
|
||||||
|
commerce.resetLocalWalletOnly();
|
||||||
}
|
}
|
||||||
} else if (walletStatus === 2) {
|
} else if (walletStatus === 2) {
|
||||||
if (root.activeView !== "passphraseModal") {
|
if (root.activeView !== "passphraseModal") {
|
||||||
|
|
|
@ -371,7 +371,7 @@ Item {
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: securityImageTip;
|
id: securityImageTip;
|
||||||
visible: false;
|
visible: !root.hasShownSecurityImageTip && root.activeView === "step_3";
|
||||||
z: 999;
|
z: 999;
|
||||||
anchors.fill: root;
|
anchors.fill: root;
|
||||||
|
|
||||||
|
@ -421,7 +421,6 @@ Item {
|
||||||
text: "Got It";
|
text: "Got It";
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.hasShownSecurityImageTip = true;
|
root.hasShownSecurityImageTip = true;
|
||||||
securityImageTip.visible = false;
|
|
||||||
passphraseSelection.focusFirstTextField();
|
passphraseSelection.focusFirstTextField();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -439,9 +438,6 @@ Item {
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
commerce.getWalletAuthenticatedStatus();
|
commerce.getWalletAuthenticatedStatus();
|
||||||
if (!root.hasShownSecurityImageTip) {
|
|
||||||
securityImageTip.visible = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -732,6 +728,7 @@ Item {
|
||||||
text: "Finish";
|
text: "Finish";
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.visible = false;
|
root.visible = false;
|
||||||
|
root.hasShownSecurityImageTip = false;
|
||||||
sendSignalToWallet({method: 'walletSetup_finished', referrer: root.referrer ? root.referrer : ""});
|
sendSignalToWallet({method: 'walletSetup_finished', referrer: root.referrer ? root.referrer : ""});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,7 @@ Overlay {
|
||||||
case "imageURL": image.source = value; break;
|
case "imageURL": image.source = value; break;
|
||||||
case "subImage": updateSubImage(value); break;
|
case "subImage": updateSubImage(value); break;
|
||||||
case "color": color.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, root.opacity); break;
|
case "color": color.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, root.opacity); break;
|
||||||
|
case "bounds": break; // The bounds property is handled in C++.
|
||||||
default: console.log("OVERLAY Unhandled image property " + key);
|
default: console.log("OVERLAY Unhandled image property " + key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ Overlay {
|
||||||
case "borderColor": rectangle.border.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, rectangle.border.color.a); break;
|
case "borderColor": rectangle.border.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, rectangle.border.color.a); break;
|
||||||
case "borderWidth": rectangle.border.width = value; break;
|
case "borderWidth": rectangle.border.width = value; break;
|
||||||
case "radius": rectangle.radius = value; break;
|
case "radius": rectangle.radius = value; break;
|
||||||
|
case "bounds": break; // The bounds property is handled in C++.
|
||||||
default: console.warn("OVERLAY Unhandled rectangle property " + key);
|
default: console.warn("OVERLAY Unhandled rectangle property " + key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ Overlay {
|
||||||
case "backgroundColor": background.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, background.color.a); break;
|
case "backgroundColor": background.color = Qt.rgba(value.red / 255, value.green / 255, value.blue / 255, background.color.a); break;
|
||||||
case "font": textField.font.pixelSize = value.size; break;
|
case "font": textField.font.pixelSize = value.size; break;
|
||||||
case "lineHeight": textField.lineHeight = value; break;
|
case "lineHeight": textField.lineHeight = value; break;
|
||||||
|
case "bounds": break; // The bounds property is handled in C++.
|
||||||
default: console.warn("OVERLAY text unhandled property " + key);
|
default: console.warn("OVERLAY text unhandled property " + key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,7 +162,7 @@ Item {
|
||||||
readonly property real controlLineHeight: 28 // Height of spinbox control on 1920 x 1080 monitor
|
readonly property real controlLineHeight: 28 // Height of spinbox control on 1920 x 1080 monitor
|
||||||
readonly property real controlInterlineHeight: 21 // 75% of controlLineHeight
|
readonly property real controlInterlineHeight: 21 // 75% of controlLineHeight
|
||||||
readonly property vector2d menuPadding: Qt.vector2d(14, 102)
|
readonly property vector2d menuPadding: Qt.vector2d(14, 102)
|
||||||
readonly property real scrollbarBackgroundWidth: 18
|
readonly property real scrollbarBackgroundWidth: 20
|
||||||
readonly property real scrollbarHandleWidth: scrollbarBackgroundWidth - 2
|
readonly property real scrollbarHandleWidth: scrollbarBackgroundWidth - 2
|
||||||
readonly property real tabletMenuHeader: 90
|
readonly property real tabletMenuHeader: 90
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,6 +128,11 @@ void QmlCommerce::reset() {
|
||||||
wallet->reset();
|
wallet->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QmlCommerce::resetLocalWalletOnly() {
|
||||||
|
auto wallet = DependencyManager::get<Wallet>();
|
||||||
|
wallet->reset();
|
||||||
|
}
|
||||||
|
|
||||||
void QmlCommerce::account() {
|
void QmlCommerce::account() {
|
||||||
auto ledger = DependencyManager::get<Ledger>();
|
auto ledger = DependencyManager::get<Ledger>();
|
||||||
ledger->account();
|
ledger->account();
|
||||||
|
|
|
@ -65,6 +65,7 @@ protected:
|
||||||
Q_INVOKABLE void history();
|
Q_INVOKABLE void history();
|
||||||
Q_INVOKABLE void generateKeyPair();
|
Q_INVOKABLE void generateKeyPair();
|
||||||
Q_INVOKABLE void reset();
|
Q_INVOKABLE void reset();
|
||||||
|
Q_INVOKABLE void resetLocalWalletOnly();
|
||||||
Q_INVOKABLE void account();
|
Q_INVOKABLE void account();
|
||||||
|
|
||||||
Q_INVOKABLE void certificateInfo(const QString& certificateId);
|
Q_INVOKABLE void certificateInfo(const QString& certificateId);
|
||||||
|
|
|
@ -166,26 +166,36 @@ void Line3DOverlay::setProperties(const QVariantMap& originalProperties) {
|
||||||
bool newEndSet { false };
|
bool newEndSet { false };
|
||||||
|
|
||||||
auto start = properties["start"];
|
auto start = properties["start"];
|
||||||
// if "start" property was not there, check to see if they included aliases: startPoint
|
// If "start" property was not there, check to see if they included aliases: startPoint, p1
|
||||||
if (!start.isValid()) {
|
if (!start.isValid()) {
|
||||||
start = properties["startPoint"];
|
start = properties["startPoint"];
|
||||||
}
|
}
|
||||||
|
if (!start.isValid()) {
|
||||||
|
start = properties["p1"];
|
||||||
|
}
|
||||||
if (start.isValid()) {
|
if (start.isValid()) {
|
||||||
newStart = vec3FromVariant(start);
|
newStart = vec3FromVariant(start);
|
||||||
newStartSet = true;
|
newStartSet = true;
|
||||||
}
|
}
|
||||||
properties.remove("start"); // so that Base3DOverlay doesn't respond to it
|
properties.remove("start"); // so that Base3DOverlay doesn't respond to it
|
||||||
|
properties.remove("startPoint");
|
||||||
|
properties.remove("p1");
|
||||||
|
|
||||||
auto end = properties["end"];
|
auto end = properties["end"];
|
||||||
// if "end" property was not there, check to see if they included aliases: endPoint
|
// If "end" property was not there, check to see if they included aliases: endPoint, p2
|
||||||
if (!end.isValid()) {
|
if (!end.isValid()) {
|
||||||
end = properties["endPoint"];
|
end = properties["endPoint"];
|
||||||
}
|
}
|
||||||
|
if (!end.isValid()) {
|
||||||
|
end = properties["p2"];
|
||||||
|
}
|
||||||
if (end.isValid()) {
|
if (end.isValid()) {
|
||||||
newEnd = vec3FromVariant(end);
|
newEnd = vec3FromVariant(end);
|
||||||
newEndSet = true;
|
newEndSet = true;
|
||||||
}
|
}
|
||||||
properties.remove("end"); // so that Base3DOverlay doesn't respond to it
|
properties.remove("end"); // so that Base3DOverlay doesn't respond to it
|
||||||
|
properties.remove("endPoint");
|
||||||
|
properties.remove("p2");
|
||||||
|
|
||||||
auto length = properties["length"];
|
auto length = properties["length"];
|
||||||
if (length.isValid()) {
|
if (length.isValid()) {
|
||||||
|
@ -252,14 +262,23 @@ QVariant Line3DOverlay::getProperty(const QString& property) {
|
||||||
if (property == "end" || property == "endPoint" || property == "p2") {
|
if (property == "end" || property == "endPoint" || property == "p2") {
|
||||||
return vec3toVariant(getEnd());
|
return vec3toVariant(getEnd());
|
||||||
}
|
}
|
||||||
|
if (property == "length") {
|
||||||
|
return QVariant(getLength());
|
||||||
|
}
|
||||||
|
if (property == "endParentID") {
|
||||||
|
return _endParentID;
|
||||||
|
}
|
||||||
|
if (property == "endParentJointIndex") {
|
||||||
|
return _endParentJointIndex;
|
||||||
|
}
|
||||||
if (property == "localStart") {
|
if (property == "localStart") {
|
||||||
return vec3toVariant(getLocalStart());
|
return vec3toVariant(getLocalStart());
|
||||||
}
|
}
|
||||||
if (property == "localEnd") {
|
if (property == "localEnd") {
|
||||||
return vec3toVariant(getLocalEnd());
|
return vec3toVariant(getLocalEnd());
|
||||||
}
|
}
|
||||||
if (property == "length") {
|
if (property == "glow") {
|
||||||
return QVariant(getLength());
|
return getGlow();
|
||||||
}
|
}
|
||||||
if (property == "lineWidth") {
|
if (property == "lineWidth") {
|
||||||
return _lineWidth;
|
return _lineWidth;
|
||||||
|
|
|
@ -134,6 +134,9 @@ void ModelOverlay::setProperties(const QVariantMap& properties) {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto dimensions = properties["dimensions"];
|
auto dimensions = properties["dimensions"];
|
||||||
|
if (!dimensions.isValid()) {
|
||||||
|
dimensions = properties["size"];
|
||||||
|
}
|
||||||
if (dimensions.isValid()) {
|
if (dimensions.isValid()) {
|
||||||
_scaleToFit = true;
|
_scaleToFit = true;
|
||||||
setDimensions(vec3FromVariant(dimensions));
|
setDimensions(vec3FromVariant(dimensions));
|
||||||
|
|
|
@ -337,6 +337,7 @@ void ViveControllerManager::InputDevice::update(float deltaTime, const controlle
|
||||||
_poseStateMap.clear();
|
_poseStateMap.clear();
|
||||||
_buttonPressedMap.clear();
|
_buttonPressedMap.clear();
|
||||||
_validTrackedObjects.clear();
|
_validTrackedObjects.clear();
|
||||||
|
_trackedControllers = 0;
|
||||||
|
|
||||||
// While the keyboard is open, we defer strictly to the keyboard values
|
// While the keyboard is open, we defer strictly to the keyboard values
|
||||||
if (isOpenVrKeyboardShown()) {
|
if (isOpenVrKeyboardShown()) {
|
||||||
|
@ -369,14 +370,12 @@ void ViveControllerManager::InputDevice::update(float deltaTime, const controlle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int numTrackedControllers = 0;
|
|
||||||
if (leftHandDeviceIndex != vr::k_unTrackedDeviceIndexInvalid) {
|
if (leftHandDeviceIndex != vr::k_unTrackedDeviceIndexInvalid) {
|
||||||
numTrackedControllers++;
|
_trackedControllers++;
|
||||||
}
|
}
|
||||||
if (rightHandDeviceIndex != vr::k_unTrackedDeviceIndexInvalid) {
|
if (rightHandDeviceIndex != vr::k_unTrackedDeviceIndexInvalid) {
|
||||||
numTrackedControllers++;
|
_trackedControllers++;
|
||||||
}
|
}
|
||||||
_trackedControllers = numTrackedControllers;
|
|
||||||
|
|
||||||
calibrateFromHandController(inputCalibrationData);
|
calibrateFromHandController(inputCalibrationData);
|
||||||
calibrateFromUI(inputCalibrationData);
|
calibrateFromUI(inputCalibrationData);
|
||||||
|
@ -527,6 +526,7 @@ void ViveControllerManager::InputDevice::handleTrackedObject(uint32_t deviceInde
|
||||||
|
|
||||||
// but _validTrackedObjects remain in sensor frame
|
// but _validTrackedObjects remain in sensor frame
|
||||||
_validTrackedObjects.push_back(std::make_pair(poseIndex, pose));
|
_validTrackedObjects.push_back(std::make_pair(poseIndex, pose));
|
||||||
|
_trackedControllers++;
|
||||||
} else {
|
} else {
|
||||||
controller::Pose invalidPose;
|
controller::Pose invalidPose;
|
||||||
_poseStateMap[poseIndex] = invalidPose;
|
_poseStateMap[poseIndex] = invalidPose;
|
||||||
|
@ -758,9 +758,9 @@ void ViveControllerManager::InputDevice::handleHmd(uint32_t deviceIndex, const c
|
||||||
} else {
|
} else {
|
||||||
const mat4& mat = mat4();
|
const mat4& mat = mat4();
|
||||||
const vec3 zero = vec3();
|
const vec3 zero = vec3();
|
||||||
|
|
||||||
handleHeadPoseEvent(inputCalibrationData, mat, zero, zero);
|
handleHeadPoseEvent(inputCalibrationData, mat, zero, zero);
|
||||||
}
|
}
|
||||||
|
_trackedControllers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,8 +112,8 @@ var DEFAULT_LIGHT_DIMENSIONS = Vec3.multiply(20, DEFAULT_DIMENSIONS);
|
||||||
|
|
||||||
var MENU_AUTO_FOCUS_ON_SELECT = "Auto Focus on Select";
|
var MENU_AUTO_FOCUS_ON_SELECT = "Auto Focus on Select";
|
||||||
var MENU_EASE_ON_FOCUS = "Ease Orientation on Focus";
|
var MENU_EASE_ON_FOCUS = "Ease Orientation on Focus";
|
||||||
var MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE = "Show Lights and Particle Systems in Edit Mode";
|
var MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE = "Show Lights and Particle Systems in Create Mode";
|
||||||
var MENU_SHOW_ZONES_IN_EDIT_MODE = "Show Zones in Edit Mode";
|
var MENU_SHOW_ZONES_IN_EDIT_MODE = "Show Zones in Create Mode";
|
||||||
|
|
||||||
var SETTING_AUTO_FOCUS_ON_SELECT = "autoFocusOnSelect";
|
var SETTING_AUTO_FOCUS_ON_SELECT = "autoFocusOnSelect";
|
||||||
var SETTING_EASE_ON_FOCUS = "cameraEaseOnFocus";
|
var SETTING_EASE_ON_FOCUS = "cameraEaseOnFocus";
|
||||||
|
|
|
@ -15,6 +15,9 @@ function setUpKeyboardControl() {
|
||||||
var KEYBOARD_HEIGHT = 200;
|
var KEYBOARD_HEIGHT = 200;
|
||||||
|
|
||||||
function raiseKeyboard() {
|
function raiseKeyboard() {
|
||||||
|
window.isKeyboardRaised = true;
|
||||||
|
window.isNumericKeyboard = this.type === "number";
|
||||||
|
|
||||||
if (lowerTimer !== null) {
|
if (lowerTimer !== null) {
|
||||||
clearTimeout(lowerTimer);
|
clearTimeout(lowerTimer);
|
||||||
lowerTimer = null;
|
lowerTimer = null;
|
||||||
|
@ -35,6 +38,9 @@ function setUpKeyboardControl() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function doLowerKeyboard() {
|
function doLowerKeyboard() {
|
||||||
|
window.isKeyboardRaised = false;
|
||||||
|
window.isNumericKeyboard = false;
|
||||||
|
|
||||||
EventBridge.emitWebEvent("_LOWER_KEYBOARD");
|
EventBridge.emitWebEvent("_LOWER_KEYBOARD");
|
||||||
lowerTimer = null;
|
lowerTimer = null;
|
||||||
isRaised = false;
|
isRaised = false;
|
||||||
|
|