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:
ykeara
2019-06-01 11:02:55 -05:00
committed by GitHub
parent a228cf0d5b
commit 263759a0df
10 changed files with 643 additions and 33 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+2 -2
View File
@@ -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)
+1 -1
View File
@@ -449,7 +449,7 @@ MyStackViewPage {
MyTextField {
id: velModifierText
text: "0.00"
keyBoardUID: 803
keyBoardUID: 804
Layout.preferredWidth: 100
Layout.leftMargin: 10
horizontalAlignment: Text.AlignHCenter
+5 -1
View File
@@ -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
}
}
}