mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 21:16:00 +02:00
334 lines
12 KiB
QML
334 lines
12 KiB
QML
import QtQuick 2.5
|
|
import QtQuick.Controls 1.0
|
|
import QtWebEngine 1.1
|
|
import QtWebChannel 1.0
|
|
import QtQuick.Controls.Styles 1.4
|
|
import "../../controls"
|
|
import "../toolbars"
|
|
import HFWebEngineProfile 1.0
|
|
import QtGraphicalEffects 1.0
|
|
|
|
StackView {
|
|
id: editRoot
|
|
objectName: "stack"
|
|
initialItem: editBasePage
|
|
|
|
property var eventBridge;
|
|
signal sendToScript(var message);
|
|
|
|
function pushSource(path) {
|
|
editRoot.push(Qt.resolvedUrl(path));
|
|
editRoot.currentItem.eventBridge = editRoot.eventBridge;
|
|
editRoot.currentItem.sendToScript.connect(editRoot.sendToScript);
|
|
}
|
|
|
|
function popSource() {
|
|
editRoot.pop();
|
|
}
|
|
|
|
|
|
Component {
|
|
id: editBasePage
|
|
TabView {
|
|
id: editTabView
|
|
// anchors.fill: parent
|
|
height: 60
|
|
|
|
Tab {
|
|
title: "CREATE"
|
|
active: true
|
|
enabled: true
|
|
property string originalUrl: ""
|
|
|
|
Rectangle {
|
|
color: "#404040"
|
|
|
|
Text {
|
|
color: "#ffffff"
|
|
text: "Choose an Entity Type to Create:"
|
|
font.pixelSize: 14
|
|
font.bold: true
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 28
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 28
|
|
}
|
|
|
|
Flow {
|
|
id: createEntitiesFlow
|
|
spacing: 35
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 55
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 55
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 70
|
|
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/94-model-01.svg"
|
|
text: "MODEL"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newModelButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/21-cube-01.svg"
|
|
text: "CUBE"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newCubeButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/22-sphere-01.svg"
|
|
text: "SPHERE"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newSphereButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/24-light-01.svg"
|
|
text: "LIGHT"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newLightButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/20-text-01.svg"
|
|
text: "TEXT"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newTextButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/25-web-1-01.svg"
|
|
text: "WEB"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newWebButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/23-zone-01.svg"
|
|
text: "ZONE"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newZoneButton" }
|
|
});
|
|
}
|
|
}
|
|
|
|
NewEntityButton {
|
|
icon: "icons/create-icons/90-particles-01.svg"
|
|
text: "PARTICLE"
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "newParticleButton" }
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: assetServerButton
|
|
width: 370
|
|
height: 38
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.top: createEntitiesFlow.bottom
|
|
anchors.topMargin: 35
|
|
|
|
Rectangle {
|
|
id: assetServerButtonBg
|
|
color: "black"
|
|
opacity: 1
|
|
radius: 6
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 0
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 0
|
|
anchors.bottom: parent.bottom
|
|
anchors.bottomMargin: 0
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 0
|
|
}
|
|
|
|
Rectangle {
|
|
id: assetServerButtonGradient
|
|
gradient: Gradient {
|
|
GradientStop {
|
|
position: 0
|
|
color: "#383838"
|
|
}
|
|
|
|
GradientStop {
|
|
position: 1
|
|
color: "black"
|
|
}
|
|
}
|
|
opacity: 1
|
|
radius: 6
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 0
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 0
|
|
anchors.bottom: parent.bottom
|
|
anchors.bottomMargin: 0
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 0
|
|
}
|
|
|
|
Text {
|
|
color: "#ffffff"
|
|
text: "OPEN THIS DOMAIN'S ASSET SERVER"
|
|
font.bold: true
|
|
font.pixelSize: 14
|
|
anchors.centerIn: parent
|
|
}
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
enabled: true
|
|
onClicked: {
|
|
editRoot.sendToScript({
|
|
method: "newEntityButtonClicked", params: { buttonName: "openAssetBrowserButton" }
|
|
});
|
|
}
|
|
onEntered: {
|
|
assetServerButton.state = "hover state";
|
|
}
|
|
onExited: {
|
|
assetServerButton.state = "base state";
|
|
}
|
|
}
|
|
|
|
states: [
|
|
State {
|
|
name: "hover state"
|
|
|
|
PropertyChanges {
|
|
target: assetServerButtonGradient
|
|
opacity: 0
|
|
}
|
|
},
|
|
State {
|
|
name: "base state"
|
|
|
|
PropertyChanges {
|
|
target: assetServerButtonGradient
|
|
opacity: 1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "LIST"
|
|
active: true
|
|
enabled: true
|
|
property string originalUrl: ""
|
|
|
|
WebView {
|
|
id: entityListToolWebView
|
|
url: "../../../../../scripts/system/html/entityList.html"
|
|
eventBridge: editRoot.eventBridge
|
|
anchors.fill: parent
|
|
enabled: true
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "PROPERTIES"
|
|
active: true
|
|
enabled: true
|
|
property string originalUrl: ""
|
|
|
|
WebView {
|
|
id: entityPropertiesWebView
|
|
url: "../../../../../scripts/system/html/entityProperties.html"
|
|
eventBridge: editRoot.eventBridge
|
|
anchors.fill: parent
|
|
enabled: true
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "GRID"
|
|
active: true
|
|
enabled: true
|
|
property string originalUrl: ""
|
|
|
|
WebView {
|
|
id: gridControlsWebView
|
|
url: "../../../../../scripts/system/html/gridControls.html"
|
|
eventBridge: editRoot.eventBridge
|
|
anchors.fill: parent
|
|
enabled: true
|
|
}
|
|
}
|
|
|
|
Tab {
|
|
title: "P"
|
|
active: true
|
|
enabled: true
|
|
property string originalUrl: ""
|
|
|
|
WebView {
|
|
id: particleExplorerWebView
|
|
url: "../../../../../scripts/system/particle_explorer/particleExplorer.html"
|
|
eventBridge: editRoot.eventBridge
|
|
anchors.fill: parent
|
|
enabled: true
|
|
}
|
|
}
|
|
|
|
|
|
style: TabViewStyle {
|
|
frameOverlap: 1
|
|
tab: Rectangle {
|
|
color: styleData.selected ? "#404040" :"black"
|
|
implicitWidth: text.width + 42
|
|
implicitHeight: 40
|
|
Text {
|
|
id: text
|
|
anchors.centerIn: parent
|
|
text: styleData.title
|
|
font.pixelSize: 16
|
|
font.bold: true
|
|
color: styleData.selected ? "white" : "white"
|
|
}
|
|
}
|
|
tabBar: Rectangle {
|
|
color: "black"
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 0
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 0
|
|
anchors.bottom: parent.bottom
|
|
anchors.bottomMargin: 0
|
|
anchors.top: parent.top
|
|
anchors.topMargin: 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|