mirror of
https://github.com/overte-org/overte.git
synced 2025-04-06 10:32:49 +02:00
166 lines
4.3 KiB
QML
166 lines
4.3 KiB
QML
import QtQuick 2.6
|
|
|
|
import "../../controlsUit" 1.0 as HifiControls
|
|
import "../../stylesUit" 1.0
|
|
import "../avatarapp" 1.0
|
|
|
|
ShadowRectangle {
|
|
id: root
|
|
|
|
width: parent.width
|
|
height: 74
|
|
color: "#252525"
|
|
|
|
property string title: qsTr("Avatar Packager")
|
|
property alias docsEnabled: docs.visible
|
|
property alias videoEnabled: video.visible
|
|
property bool backButtonVisible: true // If false, is not visible and does not take up space
|
|
property bool backButtonEnabled: true // If false, is not visible but does not affect space
|
|
property bool canRename: false
|
|
property int colorScheme
|
|
|
|
property color textColor: "white"
|
|
property color hoverTextColor: "gray"
|
|
property color pressedTextColor: "#6A6A6A"
|
|
|
|
signal backButtonClicked
|
|
signal docsButtonClicked
|
|
signal videoButtonClicked
|
|
|
|
RalewayButton {
|
|
id: back
|
|
|
|
visible: backButtonEnabled && backButtonVisible
|
|
|
|
size: 28
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 16
|
|
|
|
text: "◀"
|
|
|
|
onClicked: root.backButtonClicked()
|
|
}
|
|
Item {
|
|
id: titleArea
|
|
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.left: root.backButtonVisible ? back.right : parent.left
|
|
anchors.leftMargin: root.backButtonVisible ? 11 : 21
|
|
anchors.right: docs.left
|
|
states: [
|
|
State {
|
|
name: "renaming"
|
|
PropertyChanges { target: title; visible: false }
|
|
PropertyChanges { target: titleInputArea; visible: true }
|
|
}
|
|
]
|
|
|
|
Item {
|
|
id: title
|
|
anchors.fill: parent
|
|
|
|
RalewaySemiBold {
|
|
id: titleNotRenameable
|
|
|
|
visible: !root.canRename
|
|
|
|
size: 28
|
|
anchors.fill: parent
|
|
text: root.title
|
|
color: "white"
|
|
}
|
|
|
|
RalewayButton {
|
|
id: titleRenameable
|
|
|
|
visible: root.canRename
|
|
enabled: root.canRename
|
|
|
|
size: 28
|
|
anchors.fill: parent
|
|
text: root.title
|
|
|
|
onClicked: {
|
|
if (!root.canRename || AvatarPackagerCore.currentAvatarProject === null) {
|
|
return;
|
|
}
|
|
|
|
titleArea.state = "renaming";
|
|
titleInput.text = AvatarPackagerCore.currentAvatarProject.name;
|
|
titleInput.selectAll();
|
|
titleInput.forceActiveFocus(Qt.MouseFocusReason);
|
|
}
|
|
}
|
|
}
|
|
Item {
|
|
id: titleInputArea
|
|
visible: false
|
|
anchors.fill: parent
|
|
|
|
HifiControls.TextField {
|
|
id: titleInput
|
|
anchors.fill: parent
|
|
text: ""
|
|
colorScheme: root.colorScheme
|
|
font.family: "Fira Sans"
|
|
font.pixelSize: 28
|
|
z: 200
|
|
onFocusChanged: {
|
|
if (titleArea.state === "renaming" && !focus) {
|
|
accepted();
|
|
}
|
|
}
|
|
Keys.onPressed: {
|
|
if (event.key === Qt.Key_Escape) {
|
|
titleArea.state = "";
|
|
}
|
|
}
|
|
onAccepted: {
|
|
if (acceptableInput) {
|
|
AvatarPackagerCore.currentAvatarProject.name = text;
|
|
}
|
|
titleArea.state = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// FIXME: Link to a Overte's version of the video.
|
|
/*
|
|
RalewayButton {
|
|
id: video
|
|
visible: false
|
|
size: 28
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.right: docs.left
|
|
anchors.rightMargin: 16
|
|
|
|
text: qsTr("Video")
|
|
|
|
onClicked: videoButtonClicked()
|
|
}
|
|
*/
|
|
// Temporary placeholder for video button.
|
|
Rectangle {
|
|
id: video
|
|
visible: false
|
|
}
|
|
|
|
RalewayButton {
|
|
id: docs
|
|
visible: false
|
|
size: 28
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 16
|
|
|
|
text: qsTr("Docs")
|
|
|
|
onClicked: docsButtonClicked()
|
|
}
|
|
}
|