Color overlay adjustment feature (#208)
* perf graph overlay/checkbox added * added toggle Chaperone action * toggle chaperone non-functional * fixed chaperone toggle action const to once * Added Proximity Sensor Action back-end, not implemented via logic Until fixed by valve * added default WMR controller profile * formated * formated steamvrtabcontroller.h * fixed un-intended change * fixed audio profile Bug w/ changed devices * fixed name being used as param instead of ID * fixed loop logic in saveAudioProfile * audio profile fix WIP defaults OVR integration * fixed profile Saves, delete logic and mirror logic needed * fixed QML format, added TODO message * Fixed Audio Profile Behavior * fixed qml reference error * audiodeviceselector changed qml * Removed some comments * changed Visibility slider Minimum to 30% (steamVR minimum allowed) * fixed mirror/playback same issue * fixed Audio device refresh bug, removed currently un-used proximity logic (commented out) * removed dead code * fixed Manifest install/un-install behavior * removed un-used param * color overlay in prog * video overlay basic functions added * fixed qml errors * fixed init order error and chaperone min init error * fixed duplicate button id issue, init issue * fixed log call w/ manifest * removed commented log lines
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -527,8 +527,8 @@ MyStackViewPage {
|
||||
|
||||
Component.onCompleted: {
|
||||
chaperoneVisibilitySlider.value = ChaperoneTabController.boundsVisibility
|
||||
if(chaperoneVisibilitySlider.value < 0.5){
|
||||
chaperoneVisibilitySlider.value = 0.5
|
||||
if(chaperoneVisibilitySlider.value < 0.3){
|
||||
chaperoneVisibilitySlider.value = 0.3
|
||||
}
|
||||
|
||||
var d = ChaperoneTabController.fadeDistance.toFixed(1)
|
||||
|
||||
@@ -449,7 +449,7 @@ MyStackViewPage {
|
||||
MyTextField {
|
||||
id: velModifierText
|
||||
text: "0.00"
|
||||
keyBoardUID: 803
|
||||
keyBoardUID: 804
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
@@ -4,6 +4,7 @@ import QtQuick.Layouts 1.3
|
||||
import ovras.advsettings 1.0
|
||||
import "../common"
|
||||
import "brightness"
|
||||
import "color"
|
||||
|
||||
MyStackViewPage {
|
||||
width: 1200
|
||||
@@ -12,7 +13,10 @@ MyStackViewPage {
|
||||
content: ColumnLayout {
|
||||
spacing: 18
|
||||
|
||||
BrightnessGroupBox { }
|
||||
BrightnessGroupBox {
|
||||
id: brightnessGroupBox}
|
||||
ColorGroupBox {
|
||||
id: colorGroupBox}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
|
||||
@@ -69,7 +69,7 @@ GroupBox {
|
||||
MyTextField {
|
||||
id: brightnessValueText
|
||||
text: "100%"
|
||||
keyBoardUID: 301
|
||||
keyBoardUID: 901
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
@@ -0,0 +1,267 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import ovras.advsettings 1.0
|
||||
import "../../common"
|
||||
|
||||
GroupBox {
|
||||
id: brightnessGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Color Adjustment"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyToggleButton {
|
||||
id: colorToggle
|
||||
text: "Toggle On/Off"
|
||||
onCheckedChanged: {
|
||||
VideoTabController.setColorEnabled(this.checked, false) }
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 150
|
||||
}
|
||||
|
||||
MyText {
|
||||
text: "Opacity:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.rightMargin: 10
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: colorOpacitySlider
|
||||
from: 0.5
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
value: 1.0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = ((this.position * 100)/2 + 50)
|
||||
colorOpacityText.text = Math.round(val) + "%"
|
||||
}
|
||||
onValueChanged: {
|
||||
|
||||
VideoTabController.setColorOpacityPerc(value.toFixed(2), false)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorOpacityText
|
||||
text: "100%"
|
||||
keyBoardUID: 911
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 50) {
|
||||
val = 50
|
||||
} else if (val > 100.0) {
|
||||
val = 100.0
|
||||
}
|
||||
var v = (val/100).toFixed(2)
|
||||
colorOpacitySlider.value = v
|
||||
}
|
||||
text = Math.round(VideoTabController.colorOpacityPerc * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyText {
|
||||
text: "Red:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 200
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: colorRedSlider
|
||||
from: 0.01
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
value: 1.0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = (this.position * 100)
|
||||
colorRedText.text = Math.round(val) + "%"
|
||||
}
|
||||
onValueChanged: {
|
||||
|
||||
VideoTabController.setColorRed(value.toFixed(2), false)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorRedText
|
||||
text: "100%"
|
||||
keyBoardUID: 912
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 5) {
|
||||
val = 5
|
||||
} else if (val > 100.0) {
|
||||
val = 100.0
|
||||
}
|
||||
var v = (val/100).toFixed(2)
|
||||
colorRedSlider.value = v
|
||||
}
|
||||
text = Math.round(VideoTabController.colorRed * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyText {
|
||||
text: "Green:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 200
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: colorGreenSlider
|
||||
from: 0.01
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
value: 1.0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = (this.position * 100)
|
||||
colorGreenText.text = Math.round(val) + "%"
|
||||
}
|
||||
onValueChanged: {
|
||||
|
||||
VideoTabController.setColorGreen(value.toFixed(2), false)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorGreenText
|
||||
text: "100%"
|
||||
keyBoardUID: 913
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 5) {
|
||||
val = 5
|
||||
} else if (val > 100.0) {
|
||||
val = 100.0
|
||||
}
|
||||
var v = (val/100).toFixed(2)
|
||||
colorGreenSlider.value = v
|
||||
}
|
||||
text = Math.round(VideoTabController.colorGreen * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyText {
|
||||
text: "Blue:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 200
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: colorBlueSlider
|
||||
from: 0.01
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
value: 1.0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = (this.position * 100)
|
||||
colorBlueText.text = Math.round(val) + "%"
|
||||
}
|
||||
onValueChanged: {
|
||||
|
||||
VideoTabController.setColorBlue(value.toFixed(2), false)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorBlueText
|
||||
text: "100%"
|
||||
keyBoardUID: 914
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 5) {
|
||||
val = 5
|
||||
} else if (val > 100.0) {
|
||||
val = 100.0
|
||||
}
|
||||
var v = (val/100).toFixed(2)
|
||||
colorBlueSlider.value = v
|
||||
}
|
||||
text = Math.round(VideoTabController.colorBlue * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
colorOpacitySlider.value = VideoTabController.colorOpacityPerc
|
||||
colorToggle.checked = VideoTabController.colorEnabled
|
||||
colorRedSlider.value = VideoTabController.colorRed
|
||||
colorGreenSlider.value = VideoTabController.colorGreen
|
||||
colorBlueSlider.value = VideoTabController.colorBlue
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: VideoTabController
|
||||
|
||||
onColorOpacityPercChanged: {
|
||||
colorOpacitySlider.value = VideoTabController.colorOpacityPerc
|
||||
}
|
||||
onColorEnabledChanged: {
|
||||
colorToggle.checked = VideoTabController.colorEnabled
|
||||
}
|
||||
onColorRedChanged:{
|
||||
colorRedSlider.value = VideoTabController.colorRed
|
||||
}
|
||||
onColorGreenChanged:{
|
||||
colorGreenSlider.value = VideoTabController.colorGreen
|
||||
}
|
||||
onColorBlueChanged:{
|
||||
colorBlueSlider.value = VideoTabController.colorBlue
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user