From c13badcbc8f32eec08fb5456187c44e58a215933 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Thu, 3 Jan 2019 10:20:13 -0800 Subject: [PATCH] Fix project rename focus and create project not initializing --- .../hifi/avatarPackager/AvatarPackagerApp.qml | 3 +- .../avatarPackager/AvatarPackagerHeader.qml | 8 +-- .../qml/hifi/avatarPackager/ClickableArea.qml | 63 +++++++++++++++++++ .../avatarPackager/CreateAvatarProject.qml | 1 + .../qml/hifi/avatarPackager/InfoBox.qml | 6 ++ .../qml/hifi/avatarPackager/RalewayButton.qml | 56 +++-------------- 6 files changed, 80 insertions(+), 57 deletions(-) create mode 100644 interface/resources/qml/hifi/avatarPackager/ClickableArea.qml diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 0a678dafee..6e2e352b51 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -22,6 +22,7 @@ Item { MouseArea { anchors.fill: parent + onClicked: { unfocusser.forceActiveFocus(); } @@ -272,8 +273,6 @@ Item { color: 'white' - visible: AvatarPackagerCore.currentAvatarProject !== null - anchors.top: parent.top anchors.left: parent.left anchors.topMargin: 16 diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml index d0b06ea15f..b40e9cc264 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerHeader.qml @@ -92,8 +92,7 @@ ShadowRectangle { font.pixelSize: 28 z: 200 onFocusChanged: { - if (titleArea.state === "renaming" && !titleArea.focus) { - //titleArea.state = ""; + if (titleArea.state === "renaming" && !focus) { accepted(); } } @@ -104,11 +103,7 @@ ShadowRectangle { } onAccepted: { if (acceptableInput) { - //AvatarPackagerCore.renameProject(text); - console.warn(text); AvatarPackagerCore.currentAvatarProject.name = text; - console.warn(AvatarPackagerCore.currentAvatarProject.name); - } titleArea.state = ""; } @@ -127,7 +122,6 @@ ShadowRectangle { anchors.verticalCenter: docs.verticalCenter text: qsTr("Docs") - color: "white" onClicked: { docsButtonClicked(); diff --git a/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml new file mode 100644 index 0000000000..f49c98bc6a --- /dev/null +++ b/interface/resources/qml/hifi/avatarPackager/ClickableArea.qml @@ -0,0 +1,63 @@ +import QtQuick 2.6 + +import "../../controlsUit" 1.0 as HifiControls +import "../../stylesUit" 1.0 + +import TabletScriptingInterface 1.0 + +Item { + id: root + + readonly property bool pressed: mouseArea.state == "pressed" + readonly property bool hovered: mouseArea.state == "hovering" + + signal clicked() + + MouseArea { + id: mouseArea + + anchors.fill: parent + + hoverEnabled: true + + onClicked: { + root.focus = true + Tablet.playSound(TabletEnums.ButtonClick); + root.clicked() + } + + property string lastState: "" + + states: [ + State { + name: "" + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "pressed" + when: mouseArea.containsMouse && mouseArea.pressed + StateChangeScript { + script: { + mouseArea.lastState = mouseArea.state + } + } + }, + State { + name: "hovering" + when: mouseArea.containsMouse + StateChangeScript { + script: { + if (mouseArea.lastState == "") { + Tablet.playSound(TabletEnums.ButtonHover); + } + mouseArea.lastState = mouseArea.state + } + } + } + ] + } +} \ No newline at end of file diff --git a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml index d6f530a196..b72cbd42df 100644 --- a/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/CreateAvatarProject.qml @@ -28,6 +28,7 @@ Item { Window.alert('Failed to create project'); return; } + avatarProject.reset(); avatarPackager.state = AvatarPackagerState.project; } } diff --git a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml index 89f5d5c7f8..4c7718c2ac 100644 --- a/interface/resources/qml/hifi/avatarPackager/InfoBox.qml +++ b/interface/resources/qml/hifi/avatarPackager/InfoBox.qml @@ -17,6 +17,12 @@ Rectangle { property bool closeOnClickOutside: false; + onVisibleChanged: { + if (visible) { + focus = true; + } + } + function open() { visible = true; } diff --git a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml index e7134b6934..edbc31b24f 100644 --- a/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml +++ b/interface/resources/qml/hifi/avatarPackager/RalewayButton.qml @@ -8,61 +8,21 @@ import TabletScriptingInterface 1.0 RalewaySemiBold { id: root - text: "no text" - - signal clicked() - - color: "white" + anchors.fill: textItem + property var idleColor: "white" property var hoverColor: "#AFAFAF" property var pressedColor: "#575757" - MouseArea { - id: mouseArea + color: clickable.hovered ? root.hoverColor : (clickable.pressed ? root.pressedColor : root.idleColor); - anchors.fill: parent + signal clicked() - hoverEnabled: true + ClickableArea { + id: clickable - onClicked: { - Tablet.playSound(TabletEnums.ButtonClick); - root.clicked() - } + anchors.fill: root - property string lastState: "" - - states: [ - State { - name: "" - StateChangeScript { - script: { - mouseArea.lastState = mouseArea.state - } - } - }, - State { - name: "pressed" - when: mouseArea.containsMouse && mouseArea.pressed - PropertyChanges { target: root; color: pressedColor } - StateChangeScript { - script: { - mouseArea.lastState = mouseArea.state - } - } - }, - State { - name: "hovering" - when: mouseArea.containsMouse - PropertyChanges { target: root; color: hoverColor } - StateChangeScript { - script: { - if (mouseArea.lastState == "") { - Tablet.playSound(TabletEnums.ButtonHover); - } - mouseArea.lastState = mouseArea.state - } - } - } - ] + onClicked: root.clicked() } } \ No newline at end of file