mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-12 13:16:27 +02:00
174 lines
6.5 KiB
QML
174 lines
6.5 KiB
QML
import QtQuick 2.6
|
|
import QtQuick.Controls 2.2
|
|
import QtQuick.Layouts 1.3
|
|
import QtQml.Models 2.1
|
|
import QtGraphicalEffects 1.0
|
|
import "../controlsUit" 1.0 as HifiControls
|
|
import "../stylesUit" 1.0
|
|
import "../windows" as Windows
|
|
import "../dialogs"
|
|
import "avatarPackager"
|
|
|
|
Windows.ScrollingWindow {
|
|
id: root
|
|
objectName: "AvatarPackager"
|
|
width: 480
|
|
height: 706
|
|
title: "Avatar Packager"
|
|
resizable: false
|
|
opacity: parent.opacity
|
|
destroyOnHidden: true
|
|
implicitWidth: 384; implicitHeight: 640
|
|
minSize: Qt.vector2d(480, 706)
|
|
|
|
HifiConstants { id: hifi }
|
|
|
|
Item {
|
|
id: windowContent
|
|
height: pane.height
|
|
width: pane.width
|
|
anchors.fill: parent
|
|
|
|
// FIXME: modal overlay does not show
|
|
Rectangle {
|
|
id: modalOverlay
|
|
anchors.fill: parent
|
|
z: 20000
|
|
color: "#aa031b33"
|
|
clip: true
|
|
visible: true
|
|
}
|
|
|
|
Column {
|
|
id: avatarPackager
|
|
anchors.fill: parent
|
|
state: "main"
|
|
states: [
|
|
State {
|
|
name: "main"
|
|
PropertyChanges { target: avatarPackagerHeader; title: qsTr("Avatar Packager"); faqEnabled: true; backButtonEnabled: false }
|
|
PropertyChanges { target: avatarPackagerMain; visible: true }
|
|
PropertyChanges { target: avatarPackagerFooter; content: avatarPackagerMain.footer }
|
|
},
|
|
State {
|
|
name: "createProject"
|
|
PropertyChanges { target: avatarPackagerHeader; title: qsTr("Create Project") }
|
|
PropertyChanges { target: createAvatarProject; visible: true }
|
|
PropertyChanges { target: avatarPackagerFooter; content: createAvatarProject.footer }
|
|
},
|
|
State {
|
|
name: "project"
|
|
PropertyChanges { target: avatarPackagerHeader; title: AvatarPackagerCore.currentAvatarProject.name }
|
|
PropertyChanges { target: avatarProject; visible: true }
|
|
PropertyChanges { target: avatarPackagerFooter; content: avatarProject.footer }
|
|
}
|
|
]
|
|
|
|
AvatarPackagerHeader {
|
|
id: avatarPackagerHeader
|
|
onBackButtonClicked: {
|
|
avatarPackager.state = "main"
|
|
}
|
|
}
|
|
|
|
Item {
|
|
height: pane.height - avatarPackagerHeader.height - avatarPackagerFooter.height
|
|
width: pane.width
|
|
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: "#404040"
|
|
}
|
|
|
|
AvatarProject {
|
|
id: avatarProject
|
|
colorScheme: root.colorScheme
|
|
anchors.fill: parent
|
|
}
|
|
|
|
CreateAvatarProject {
|
|
id: createAvatarProject
|
|
colorScheme: root.colorScheme
|
|
anchors.fill: parent
|
|
}
|
|
|
|
Item {
|
|
id: avatarPackagerMain
|
|
visible: false
|
|
anchors.fill: parent
|
|
|
|
property var footer: Item {
|
|
anchors.fill: parent
|
|
anchors.rightMargin: 17
|
|
HifiControls.Button {
|
|
id: createProjectButton
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.right: openProjectButton.left
|
|
anchors.rightMargin: 22
|
|
height: 40
|
|
width: 134
|
|
text: qsTr("New Project")
|
|
colorScheme: root.colorScheme
|
|
onClicked: {
|
|
avatarPackager.state = "createProject";
|
|
}
|
|
}
|
|
|
|
HifiControls.Button {
|
|
id: openProjectButton
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.right: parent.right
|
|
height: 40
|
|
width: 133
|
|
text: qsTr("Open Project")
|
|
color: hifi.buttons.blue
|
|
colorScheme: root.colorScheme
|
|
onClicked: {
|
|
// TODO: make the dialog modal
|
|
let browser = desktop.fileDialog({
|
|
selectDirectory: false,
|
|
dir: fileDialogHelper.pathToUrl(AvatarPackagerCore.AVATAR_PROJECTS_PATH),
|
|
filter: "Avatar Project FST Files (*.fst)",
|
|
title: "Open Project (.fst)",
|
|
});
|
|
|
|
browser.canceled.connect(function() {
|
|
|
|
});
|
|
|
|
browser.selectedFile.connect(function(fileUrl) {
|
|
let fstFilePath = fileDialogHelper.urlToPath(fileUrl);
|
|
let currentAvatarProject = AvatarPackagerCore.openAvatarProject(fstFilePath);
|
|
if (currentAvatarProject) {
|
|
avatarPackager.state = "project";
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
Flow {
|
|
anchors {
|
|
fill: parent
|
|
topMargin: 18
|
|
leftMargin: 16
|
|
rightMargin: 16
|
|
}
|
|
RalewayRegular {
|
|
size: 20
|
|
color: "white"
|
|
text: qsTr("Use a custom avatar to express your identity")
|
|
}
|
|
RalewayRegular {
|
|
size: 20
|
|
color: "white"
|
|
text: qsTr("To learn more about using this tool, visit our docs")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AvatarPackagerFooter {
|
|
id: avatarPackagerFooter
|
|
}
|
|
}
|
|
}
|
|
}
|