mirror of
https://github.com/overte-org/overte.git
synced 2025-04-29 18:42:37 +02:00
124 lines
3.7 KiB
QML
124 lines
3.7 KiB
QML
import QtQuick 2.5
|
|
import QtQuick.Controls 1.4
|
|
import Qt.labs.settings 1.0
|
|
|
|
import "../../windows"
|
|
import "attachments"
|
|
|
|
Window {
|
|
id: root
|
|
title: "Edit Attachments"
|
|
objectName: "AttachmentsDialog"
|
|
width: 600
|
|
height: 600
|
|
resizable: true
|
|
// User must click OK or cancel to close the window
|
|
closable: false
|
|
|
|
readonly property var originalAttachments: MyAvatar.getAttachmentsVariant();
|
|
property var attachments: [];
|
|
|
|
property var settings: Settings {
|
|
category: "AttachmentsDialog"
|
|
property alias x: root.x
|
|
property alias y: root.y
|
|
property alias width: root.width
|
|
property alias height: root.height
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
for (var i = 0; i < originalAttachments.length; ++i) {
|
|
var attachment = originalAttachments[i];
|
|
root.attachments.push(attachment);
|
|
listView.model.append({});
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
radius: 4
|
|
|
|
Rectangle {
|
|
id: attachmentsBackground
|
|
anchors { left: parent.left; right: parent.right; top: parent.top; bottom: newAttachmentButton.top; margins: 8 }
|
|
color: "gray"
|
|
radius: 4
|
|
|
|
ScrollView{
|
|
id: scrollView
|
|
anchors.fill: parent
|
|
anchors.margins: 4
|
|
ListView {
|
|
id: listView
|
|
model: ListModel {}
|
|
delegate: Item {
|
|
implicitHeight: attachmentView.height + 8;
|
|
implicitWidth: attachmentView.width;
|
|
Attachment {
|
|
id: attachmentView
|
|
width: scrollView.width
|
|
attachment: root.attachments[index]
|
|
onDeleteAttachment: {
|
|
attachments.splice(index, 1);
|
|
listView.model.remove(index, 1);
|
|
}
|
|
onUpdateAttachment: MyAvatar.setAttachmentsVariant(attachments);
|
|
}
|
|
}
|
|
onCountChanged: MyAvatar.setAttachmentsVariant(attachments);
|
|
}
|
|
}
|
|
}
|
|
|
|
Button {
|
|
id: newAttachmentButton
|
|
anchors { left: parent.left; right: parent.right; bottom: buttonRow.top; margins: 8 }
|
|
text: "New Attachment"
|
|
|
|
onClicked: {
|
|
var template = {
|
|
modelUrl: "",
|
|
translation: { x: 0, y: 0, z: 0 },
|
|
rotation: { x: 0, y: 0, z: 0 },
|
|
scale: 1,
|
|
jointName: MyAvatar.jointNames[0],
|
|
soft: false
|
|
};
|
|
attachments.push(template);
|
|
listView.model.append({});
|
|
MyAvatar.setAttachmentsVariant(attachments);
|
|
}
|
|
}
|
|
|
|
Row {
|
|
id: buttonRow
|
|
spacing: 8
|
|
anchors { right: parent.right; bottom: parent.bottom; margins: 8 }
|
|
Button { action: cancelAction }
|
|
Button { action: okAction }
|
|
}
|
|
|
|
Action {
|
|
id: cancelAction
|
|
text: "Cancel"
|
|
onTriggered: {
|
|
MyAvatar.setAttachmentsVariant(originalAttachments);
|
|
root.destroy()
|
|
}
|
|
}
|
|
|
|
Action {
|
|
id: okAction
|
|
text: "OK"
|
|
onTriggered: {
|
|
for (var i = 0; i < attachments.length; ++i) {
|
|
console.log("Attachment " + i + ": " + attachments[i]);
|
|
}
|
|
|
|
MyAvatar.setAttachmentsVariant(attachments);
|
|
root.destroy()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|