mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 23:55:12 +02:00
177 lines
6 KiB
QML
177 lines
6 KiB
QML
//
|
|
// highlight.qml
|
|
// developer/utilities/render
|
|
//
|
|
// Olivier Prat, created on 08/08/2017.
|
|
// Copyright 2017 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 1.4
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import "qrc:///qml/styles-uit"
|
|
import "qrc:///qml/controls-uit" as HifiControls
|
|
import "configSlider"
|
|
|
|
Rectangle {
|
|
id: root
|
|
HifiConstants { id: hifi;}
|
|
color: hifi.colors.baseGray;
|
|
anchors.margins: hifi.dimensions.contentMargin.x
|
|
|
|
property var debugConfig: Render.getConfig("RenderMainView.HighlightDebug")
|
|
property var highlightConfig: Render.getConfig("UpdateScene.HighlightStageSetup")
|
|
|
|
signal sendToScript(var message);
|
|
|
|
Column {
|
|
id: col
|
|
spacing: 10
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.margins: hifi.dimensions.contentMargin.x
|
|
|
|
Row {
|
|
spacing: 10
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
|
|
HifiControls.CheckBox {
|
|
id: debug
|
|
text: "View Mask"
|
|
checked: root.debugConfig["viewMask"]
|
|
onCheckedChanged: {
|
|
root.debugConfig["viewMask"] = checked;
|
|
}
|
|
}
|
|
HifiControls.CheckBox {
|
|
text: "Hover select"
|
|
checked: false
|
|
onCheckedChanged: {
|
|
sendToScript("pick "+checked.toString())
|
|
}
|
|
}
|
|
HifiControls.CheckBox {
|
|
text: "Add to selection"
|
|
checked: false
|
|
onCheckedChanged: {
|
|
sendToScript("add "+checked.toString())
|
|
}
|
|
}
|
|
}
|
|
|
|
HifiControls.ComboBox {
|
|
id: box
|
|
width: 350
|
|
z: 999
|
|
editable: true
|
|
colorScheme: hifi.colorSchemes.dark
|
|
model: [
|
|
"contextOverlayHighlightList",
|
|
"highlightList1",
|
|
"highlightList2",
|
|
"highlightList3",
|
|
"highlightList4"]
|
|
label: ""
|
|
|
|
Timer {
|
|
id: postpone
|
|
interval: 100; running: false; repeat: false
|
|
onTriggered: { paramWidgetLoader.sourceComponent = paramWidgets }
|
|
}
|
|
onCurrentIndexChanged: {
|
|
root.highlightConfig["selectionName"] = model[currentIndex];
|
|
sendToScript("highlight "+currentIndex)
|
|
// This is a hack to be sure the widgets below properly reflect the change of category: delete the Component
|
|
// by setting the loader source to Null and then recreate it 100ms later
|
|
paramWidgetLoader.sourceComponent = undefined;
|
|
postpone.interval = 100
|
|
postpone.start()
|
|
}
|
|
}
|
|
|
|
Loader {
|
|
id: paramWidgetLoader
|
|
sourceComponent: paramWidgets
|
|
width: 350
|
|
}
|
|
|
|
Component {
|
|
id: paramWidgets
|
|
|
|
Column {
|
|
spacing: 10
|
|
anchors.margins: hifi.dimensions.contentMargin.x
|
|
|
|
HifiControls.Label {
|
|
text: "Outline"
|
|
}
|
|
Column {
|
|
spacing: 10
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
HifiControls.CheckBox {
|
|
text: "Smooth"
|
|
checked: root.highlightConfig["isOutlineSmooth"]
|
|
onCheckedChanged: {
|
|
root.highlightConfig["isOutlineSmooth"] = checked;
|
|
}
|
|
}
|
|
Repeater {
|
|
model: ["Width:outlineWidth:5.0:0.0",
|
|
"Intensity:outlineIntensity:1.0:0.0"
|
|
]
|
|
ConfigSlider {
|
|
label: qsTr(modelData.split(":")[0])
|
|
integral: false
|
|
config: root.highlightConfig
|
|
property: modelData.split(":")[1]
|
|
max: modelData.split(":")[2]
|
|
min: modelData.split(":")[3]
|
|
}
|
|
}
|
|
}
|
|
|
|
Separator {}
|
|
HifiControls.Label {
|
|
text: "Color"
|
|
}
|
|
Repeater {
|
|
model: ["Red:colorR:1.0:0.0",
|
|
"Green:colorG:1.0:0.0",
|
|
"Blue:colorB:1.0:0.0"
|
|
]
|
|
ConfigSlider {
|
|
label: qsTr(modelData.split(":")[0])
|
|
integral: false
|
|
config: root.highlightConfig
|
|
property: modelData.split(":")[1]
|
|
max: modelData.split(":")[2]
|
|
min: modelData.split(":")[3]
|
|
}
|
|
}
|
|
|
|
Separator {}
|
|
HifiControls.Label {
|
|
text: "Fill Opacity"
|
|
}
|
|
Repeater {
|
|
model: ["Unoccluded:unoccludedFillOpacity:1.0:0.0",
|
|
"Occluded:occludedFillOpacity:1.0:0.0"
|
|
]
|
|
ConfigSlider {
|
|
label: qsTr(modelData.split(":")[0])
|
|
integral: false
|
|
config: root.highlightConfig
|
|
property: modelData.split(":")[1]
|
|
max: modelData.split(":")[2]
|
|
min: modelData.split(":")[3]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|