5.5.0 Pairing, Universe Restriction Removal, space drag multiplier (#595)

* add Select Dongle Pairing, fix clipping on long SN names (quest)

* remove test log, add ws log, add pair protection non steamvr

* add missing install commands for new qt modules

* remove bad package

* add auto apply chaperone option, remove old seated/uncal/openxr fixes in favor of always on

* adjust battery overlay for tundras

* fix tundra tracker bat indicator positioning, remove offset page restrictions from non-standing universe, make pairing more responsive and display brief instructions

* add Drag Multiplier

* update documentation

* change version to release

* update readme

* fix format issues readme

* update readme with setting description

* change uid to prevent collision

* changed rounding for grav fling to 2 decimals to be consistand with other values on drag page
This commit is contained in:
ykeara
2022-04-12 18:07:25 -05:00
committed by GitHub
parent ba5e19d34d
commit a97a04efbc
27 changed files with 670 additions and 297 deletions
-54
View File
@@ -86,13 +86,6 @@ MyStackViewPage {
}
}
MyText {
id: seatedDisableWarningText
visible: false
wrapMode: Text.WordWrap
text: "Settings Tab: 'Enable Motion Features in Seated Mode' not checked"
}
ColumnLayout {
id: profileSection
Layout.bottomMargin: 32
@@ -521,28 +514,10 @@ MyStackViewPage {
if (MoveCenterTabController.trackingUniverse === 0) {
spaceModeText.text = "Sitting"
spaceSeatedRecenter.visible = true
var boolEnableSeatedMotion = MoveCenterTabController.enableSeatedMotion
offsetsGroupBox.visible = boolEnableSeatedMotion
rotationGroupBox.visible = boolEnableSeatedMotion
resetButtonRow.visible = boolEnableSeatedMotion
profileSection.visible = boolEnableSeatedMotion
seatedDisableWarningText.visible = !boolEnableSeatedMotion
} else if (MoveCenterTabController.trackingUniverse === 1) {
spaceModeText.text = "Standing"
spaceSeatedRecenter.visible = true
offsetsGroupBox.visible = true
rotationGroupBox.visible = true
resetButtonRow.visible = true
profileSection.visible = true
seatedDisableWarningText.visible = false
} else {
spaceModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
offsetsGroupBox.visible = false
rotationGroupBox.visible = false
resetButtonRow.visible = false
profileSection.visible = false
seatedDisableWarningText.visible = false
}
reloadOffsetProfiles()
}
@@ -575,43 +550,14 @@ MyStackViewPage {
onLockZToggleChanged: {
lockZToggle.checked = MoveCenterTabController.lockZToggle
}
onEnableSeatedMotionChanged: {
if (MoveCenterTabController.trackingUniverse === 0) {
spaceModeText.text = "Sitting"
spaceSeatedRecenter.visible = true
var boolEnableSeatedMotion = MoveCenterTabController.enableSeatedMotion
offsetsGroupBox.visible = boolEnableSeatedMotion
rotationGroupBox.visible = boolEnableSeatedMotion
resetButtonRow.visible = boolEnableSeatedMotion
profileSection.visible = boolEnableSeatedMotion
seatedDisableWarningText.visible = !boolEnableSeatedMotion
}
}
onTrackingUniverseChanged: {
if (MoveCenterTabController.trackingUniverse === 0) {
spaceModeText.text = "Sitting"
spaceSeatedRecenter.visible = true
var boolEnableSeatedMotion = MoveCenterTabController.enableSeatedMotion
offsetsGroupBox.visible = boolEnableSeatedMotion
rotationGroupBox.visible = boolEnableSeatedMotion
resetButtonRow.visible = boolEnableSeatedMotion
profileSection.visible = boolEnableSeatedMotion
seatedDisableWarningText.visible = !boolEnableSeatedMotion
} else if (MoveCenterTabController.trackingUniverse === 1) {
spaceModeText.text = "Standing"
spaceSeatedRecenter.visible = true
offsetsGroupBox.visible = true
rotationGroupBox.visible = true
resetButtonRow.visible = true
profileSection.visible = true
seatedDisableWarningText.visible = false
} else {
spaceModeText.text = "Unknown(" + MoveCenterTabController.trackingUniverse + ")"
offsetsGroupBox.visible = false
rotationGroupBox.visible = false
resetButtonRow.visible = false
profileSection.visible = false
seatedDisableWarningText.visible = false
}
}
onOffsetProfilesUpdated: {
+66 -52
View File
@@ -31,7 +31,7 @@ MyStackViewPage {
text: "Allow External App Chaperone Edits (Danger)"
onCheckedChanged: {
MoveCenterTabController.setAllowExternalEdits(checked, true)
seatedOldExternalWarning.visible = checked && MoveCenterTabController.oldStyleMotion && MoveCenterTabController.enableSeatedMotion
seatedOldExternalWarning.visible = checked && MoveCenterTabController.oldStyleMotion
}
}
@@ -40,7 +40,7 @@ MyStackViewPage {
text: "Old-Style Motion (per-frame disk writes)"
onCheckedChanged: {
MoveCenterTabController.setOldStyleMotion(checked, true)
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && checked && MoveCenterTabController.enableSeatedMotion
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && checked
}
}
@@ -52,30 +52,6 @@ MyStackViewPage {
}
}
MyToggleButton {
id: enableSeatedMotionToggle
text: "Enable Motion Features When in Seated Mode (Experimental)"
onCheckedChanged: {
MoveCenterTabController.setEnableSeatedMotion(checked, true)
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion && checked
}
}
MyToggleButton {
id: enableUnccalMotionToggle
text: "Enable Motion Features When in Uncalibrated Mode (Experimental)"
onCheckedChanged: {
MoveCenterTabController.setEnableUncalMotion(checked, true);
}
}
MyToggleButton {
id: openXRFixToggle
text: "OpenXR Fix (force standing universe [Experimental])"
onCheckedChanged: {
OverlayController.setOpenXRFixEnabled(checked, true);
}
}
MyToggleButton {
id: disableCrashRecoveryToggle
@@ -99,6 +75,48 @@ MyStackViewPage {
SettingsTabController.setNativeChaperoneToggle(this.checked, true)
}
}
RowLayout {
spacing: 18
MyToggleButton {
id: autoApplyChaperoneToggleButton
text: "Auto Apply Chaperone Profile:"
onCheckedChanged: {
OverlayController.setAutoApplyChaperoneEnabled(this.checked, true)
}
}
MyComboBox {
id: summaryChaperoneProfileComboBox
Layout.leftMargin: 47
Layout.maximumWidth: 378
Layout.minimumWidth: 378
Layout.preferredWidth: 378
Layout.fillWidth: true
model: [""]
onCurrentIndexChanged: {
if (currentIndex > 0) {
summaryChaperoneProfileApplyButton.enabled = true
} else {
summaryChaperoneProfileApplyButton.enabled = false
}
}
}
MyPushButton {
id: summaryChaperoneProfileApplyButton
enabled: false
Layout.preferredWidth: 150
text: "Select"
onClicked: {
if (summaryChaperoneProfileComboBox.currentIndex > 0) {
ChaperoneTabController.applyChaperoneProfile(summaryChaperoneProfileComboBox.currentIndex - 1)
OverlayController.setAutoChapProfileName(summaryChaperoneProfileComboBox.currentIndex - 1)
summaryChaperoneProfileComboBox.currentIndex = 0
}
}
}
}
MyToggleButton {
id: oculusSdkToggleButton
text: "Force Use SteamVR (Disable Oculus API [experimental])"
@@ -113,13 +131,6 @@ MyStackViewPage {
OverlayController.setExclusiveInputEnabled(this.checked, true)
}
}
MyToggleButton {
id: spaceAdjustChaperoneToggle
text: "Adjust Chaperone"
onCheckedChanged: {
MoveCenterTabController.adjustChaperone = this.checked
}
}
RowLayout {
Layout.fillWidth: true
@@ -266,8 +277,6 @@ MyStackViewPage {
allowExternalEditsToggle.checked = MoveCenterTabController.allowExternalEdits
oldStyleMotionToggle.checked = MoveCenterTabController.oldStyleMotion
universeCenteredRotationToggle.checked = MoveCenterTabController.universeCenteredRotation
enableSeatedMotionToggle.checked = MoveCenterTabController.enableSeatedMotion
enableUnccalMotionToggle.checked = MoveCenterTabController.enableUncalMotion
disableCrashRecoveryToggle.checked = !OverlayController.crashRecoveryDisabled
customTickRateText.text = OverlayController.customTickRateMs
@@ -281,11 +290,11 @@ MyStackViewPage {
nativeChaperoneToggleButton.checked = SettingsTabController.nativeChaperoneToggle
oculusSdkToggleButton.checked = SettingsTabController.oculusSdkToggle
exclusiveInputToggleButton.checked = OverlayController.exclusiveInputEnabled
openXRFixToggle.checked = OverlayController.openXRFixEnabled
autoApplyChaperoneToggleButton.checked = OverlayController.autoApplyChaperoneEnabled
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion && MoveCenterTabController.enableSeatedMotion
spaceAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion
reloadChaperoneProfiles()
}
Connections {
@@ -305,25 +314,15 @@ MyStackViewPage {
target: MoveCenterTabController
onAllowExternalEditsChanged: {
allowExternalEditsToggle.checked = MoveCenterTabController.allowExternalEdits
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion && MoveCenterTabController.enableSeatedMotion
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion
}
onOldStyleMotionChanged: {
oldStyleMotionToggle.checked = MoveCenterTabController.oldStyleMotion
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion && MoveCenterTabController.enableSeatedMotion
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion
}
onUniverseCenteredRotationChanged: {
universeCenteredRotationToggle.checked = MoveCenterTabController.universeCenteredRotation
}
onEnableSeatedMotionChanged: {
enableSeatedMotionToggle.checked = MoveCenterTabController.enableSeatedMotion
seatedOldExternalWarning.visible = MoveCenterTabController.allowExternalEdits && MoveCenterTabController.oldStyleMotion && MoveCenterTabController.enableSeatedMotion
}
onEnableUncalMotionChanged: {
enableUnccalMotionToggle.checked = MoveCenterTabController.enableUncalMotion
}
onAdjustChaperoneChanged: {
spaceAdjustChaperoneToggle.checked = MoveCenterTabController.adjustChaperone
}
}
Connections {
@@ -355,9 +354,24 @@ MyStackViewPage {
onExclusiveInputEnabledChanged:{
exclusiveInputToggleButton.checked = OverlayController.exclusiveInputEnabled
}
onOpenXRFixEnabledChanged:{
openXRFixToggle.checked = OverlayController.openXRFixEnabled
onAutoApplyChaperoneEnabledChanged: {
autoApplyChaperoneToggleButton.checked = OverlayController.autoApplyChaperoneEnabled
}
}
Connections{
target: ChaperoneTabController
onChaperoneProfilesUpdated: {
reloadChaperoneProfiles()
}
}
} // end scroll
function reloadChaperoneProfiles() {
var profiles = [""]
var profileCount = ChaperoneTabController.getChaperoneProfileCount()
for (var i = 0; i < profileCount; i++) {
profiles.push(ChaperoneTabController.getChaperoneProfileName(i))
}
summaryChaperoneProfileComboBox.currentIndex = 0
summaryChaperoneProfileComboBox.model = profiles
}
}
@@ -171,10 +171,10 @@ GroupBox {
function onInputEvent(input) {
var val = parseFloat(input)
if (!isNaN(val)) {
MoveCenterTabController.flingStrength = val.toFixed(1)
text = MoveCenterTabController.flingStrength.toFixed(1)
MoveCenterTabController.flingStrength = val.toFixed(2)
text = MoveCenterTabController.flingStrength.toFixed(2)
} else {
text = MoveCenterTabController.flingStrength.toFixed(1)
text = MoveCenterTabController.flingStrength.toFixed(2)
}
}
}
@@ -88,6 +88,60 @@ GroupBox {
}
}
}
RowLayout{
Item{
Layout.fillWidth: true
}
MyText {
text: "Drag Multiplier:"
horizontalAlignment: Text.AlignRight
Layout.rightMargin: 2
}
MyTextField {
id: dragMultText
text: "1.0"
keyBoardUID: 157
Layout.preferredWidth: 120
Layout.leftMargin: 10
Layout.rightMargin: 10
horizontalAlignment: Text.AlignHCenter
function onInputEvent(input) {
var val = parseFloat(input)
if (!isNaN(val)) {
MoveCenterTabController.dragMult = val.toFixed(2)
text = MoveCenterTabController.dragMult.toFixed(2)
} else {
text = MoveCenterTabController.dragMult.toFixed(2)
}
}
}
MyPushButton2 {
Layout.preferredWidth: 50
text: "1x"
onClicked: {
MoveCenterTabController.dragMult = 1.0
}
}
MyPushButton2 {
Layout.preferredWidth: 50
text: "2x"
onClicked: {
MoveCenterTabController.dragMult = 2.0
}
}
MyPushButton2 {
Layout.preferredWidth: 50
text: "3x"
onClicked: {
MoveCenterTabController.dragMult = 3.0
}
}
}
}
Component.onCompleted: {
@@ -95,6 +149,7 @@ GroupBox {
moveShortcutRight.checked = MoveCenterTabController.moveShortcutRight
dragComfortSlider.value = MoveCenterTabController.dragComfortFactor
dragBounds.checked = MoveCenterTabController.dragBounds
dragMultText.text = MoveCenterTabController.dragMult.toFixed(2)
}
Connections {
@@ -112,5 +167,8 @@ GroupBox {
onDragBoundsChanged: {
dragBounds.checked = MoveCenterTabController.dragBounds
}
onDragMultChanged: {
dragMultText.text = MoveCenterTabController.dragMult.toFixed(2)
}
}
}
+1
View File
@@ -30,6 +30,7 @@ MyStackViewPage {
onClicked: {
MyResources.playFocusChangedSound()
mainView.push(steamVRTXRXPage)
SteamVRTabController.updateRXTXList()
}
}
@@ -25,6 +25,18 @@ MyStackViewPage {
spacing: 10
Layout.fillWidth: true
Layout.fillHeight: true
RowLayout{
MyText{
text: "Status: "
Layout.preferredWidth: 200
}
MyText{
id: statusText
text: "Ready to Pair"
Layout.fillWidth: true
}
}
RowLayout{
MyText{
text: "dongles used: "
@@ -46,9 +58,21 @@ MyStackViewPage {
onClicked: {
getRXTX()
}
}
}
RowLayout{
MyText{
text: "Instructions: Set Device to pairing mode and then hit pair on desired un-connected Dongle. To pair to a currently used dongle turn-off the attached device and refresh the list"
Layout.fillWidth: true
wrapMode: Text.WordWrap
}
}
Rectangle {
color: "#ffffff"
height: 1
Layout.fillWidth: true
Layout.bottomMargin: 5
}
RowLayout{
Layout.fillHeight: true
Layout.fillWidth: true
@@ -101,6 +125,7 @@ MyStackViewPage {
MyText{
Layout.preferredWidth: 250
text: TX
clip: true
}
Item{
Layout.preferredWidth: 50
@@ -112,15 +137,29 @@ MyStackViewPage {
MyText{
Layout.preferredWidth: 250
text: DT
clip: true
}
}
RowLayout{
Layout.fillHeight: true
Layout.fillWidth: true
clip: true
MyPushButton{
Layout.preferredWidth: 200
text: "Pair"
id: pairBtn
onClicked: {
SteamVRTabController.pairDevice(rxtext.text)
}
Component.onCompleted: {
if(Dev != "No Connection"){
this.enabled = false;
}
}
}
Item{
Layout.preferredWidth: 600
Layout.preferredWidth: 400
}
MyText{
Layout.preferredWidth: 150
@@ -128,6 +167,7 @@ MyStackViewPage {
}
MyText{
Layout.preferredWidth: 250
id: rxtext
text: RX
}
}
@@ -143,6 +183,18 @@ MyStackViewPage {
Component.onCompleted: {
getRXTX()
}
Connections{
target: SteamVRTabController
onPairStatusChanged: {
statusText.text = value;
getRXTX()
}
onUpdateRXTX:{
getRXTX()
}
}
function getRXTX() {
listModelRXTX.clear();
SteamVRTabController.searchRXTX();