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:
@@ -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: {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user