Remove the Accessibility Tab completely from the app (#79)

See
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/27

The Accessibility tab was made redundant with the implementation of the
new playspace/room/universe tab in
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/60

The tab inherited from the PttController class, which required changes
in order to work with the new IVRInput system. See
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/51
for more about the IVRInput system.

Removing the page now at an early state is going to make it easier to
refactor the PttController since only one class is inheriting it,
instead of two. Since the Accessibility tab is going to be removed
anyway, it makes sense to remove it now.
This commit is contained in:
username223
2019-02-03 12:33:43 -06:00
committed by ykeara
parent 05fca0e17d
commit ca67502fc5
10 changed files with 0 additions and 420 deletions
-7
View File
@@ -22,7 +22,6 @@
> * [Audio Page](#audio_page)
> * [Revive Page](#revive_page)
> * [Utilities Page](#utilities_page)
> * [Accessibility Page](#accessibility_page)
> * [Statistics Page](#statistics_page)
> * [Settings Page](#settings_page)
> * [How To Compile](#how_to_compile)
@@ -260,12 +259,6 @@ Any changes to controller settings are immediately applied by Revive (Requires R
- **Steam Desktop Overlay Width:** Allows to increase the size of the Steam desktop overlay. Useful for multi-monitor setups.
- **Media Control Keys:** Allows controlling a media player through the media keys. This is the same as having a keyboard with media keys and then pressing them. Should support most common media players.
<a name="accessibility_page"></a>
## - Accessibility Page:
![Accessibility Page](docs/screenshots/AccessibilityPage.png)
- **Adjust Player Height:** Offsets the player height to allows short or wheelchair-bound players to fully interact with height-limited applications by both boosting their height and being able to touch the in-game floor when necessary by pressing a configurable motion controller button.
<a name="statistics_page"></a>
## - Statistics Page:
-3
View File
@@ -66,7 +66,6 @@ SOURCES += src/main.cpp\
src/tabcontrollers/ReviveTabController.cpp \
src/tabcontrollers/UtilitiesTabController.cpp \
src/tabcontrollers/PttController.cpp \
src/tabcontrollers/AccessibilityTabController.cpp \
src/utils/ChaperoneUtils.cpp \
src/tabcontrollers/audiomanager/AudioManagerDummy.cpp \
src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp \
@@ -85,7 +84,6 @@ HEADERS += src/overlaycontroller.h \
src/tabcontrollers/UtilitiesTabController.h \
src/tabcontrollers/AudioManager.h \
src/tabcontrollers/PttController.h \
src/tabcontrollers/AccessibilityTabController.h \
src/tabcontrollers/KeyboardInput.h \
src/utils/Matrix.h \
src/utils/ChaperoneUtils.h \
@@ -123,7 +121,6 @@ DISTFILES += \
src/res/img/battery/* \
src/res/img/icons/* \
src/res/qml/qmldir \
src/res/qml/AccessibilityPage.qml \
src/res/qml/audio_page/* \
src/res/qml/ChaperonePage.qml \
src/res/qml/ChaperoneWarningsPage.qml \
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

-14
View File
@@ -129,7 +129,6 @@ OverlayController::OverlayController( bool desktopMode,
m_reviveTabController.initStage1(
m_settingsTabController.forceRevivePage() );
m_utilitiesTabController.initStage1();
m_accessibilityTabController.initStage1();
// Set qml context
qmlEngine.rootContext()->setContextProperty( "applicationVersion",
@@ -248,16 +247,6 @@ OverlayController::OverlayController( bool desktopMode,
QQmlEngine::setObjectOwnership( obj, QQmlEngine::CppOwnership );
return obj;
} );
qmlRegisterSingletonType<SteamVRTabController>(
"matzman666.advsettings",
1,
0,
"AccessibilityTabController",
[]( QQmlEngine*, QJSEngine* ) {
QObject* obj = &( objectAddress->m_accessibilityTabController );
QQmlEngine::setObjectOwnership( obj, QQmlEngine::CppOwnership );
return obj;
} );
}
OverlayController::~OverlayController()
@@ -406,7 +395,6 @@ void OverlayController::SetWidget( QQuickItem* quickItem,
m_settingsTabController.initStage2( this, m_pWindow.get() );
m_reviveTabController.initStage2( this, m_pWindow.get() );
m_utilitiesTabController.initStage2( this, m_pWindow.get() );
m_accessibilityTabController.initStage2( this, m_pWindow.get() );
}
void OverlayController::OnRenderRequest()
@@ -750,8 +738,6 @@ void OverlayController::mainEventLoop()
m_settingsTabController.eventLoopTick();
m_reviveTabController.eventLoopTick();
m_audioTabController.eventLoopTick();
m_accessibilityTabController.eventLoopTick(
vr::VRCompositor()->GetTrackingSpace() );
if ( m_ulOverlayThumbnailHandle != vr::k_ulOverlayHandleInvalid )
{
-3
View File
@@ -37,7 +37,6 @@
#include "tabcontrollers/SettingsTabController.h"
#include "tabcontrollers/ReviveTabController.h"
#include "tabcontrollers/UtilitiesTabController.h"
#include "tabcontrollers/AccessibilityTabController.h"
#include "ivrinput/ivrinput.h"
@@ -50,7 +49,6 @@ namespace advsettings
// Actual rates of updates are counter * vsync (~11ms)
// Values chosen based on update speed priority
// Avoid setting values to the same numbers.
constexpr int k_accessibilitySettingsUpdateCounter = 151;
constexpr int k_audioSettingsUpdateCounter = 89;
constexpr int k_chaperoneSettingsUpdateCounter = 101;
constexpr int k_moveCenterSettingsUpdateCounter = 149;
@@ -121,7 +119,6 @@ public: // I know it's an ugly hack to make them public to enable external
SettingsTabController m_settingsTabController;
ReviveTabController m_reviveTabController;
UtilitiesTabController m_utilitiesTabController;
AccessibilityTabController m_accessibilityTabController;
private:
QPoint getMousePositionForEvent( vr::VREvent_Mouse_t mouse );
-187
View File
@@ -1,187 +0,0 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
headerText: "Accessibility Tools"
PttControllerConfigDialog {
id: pttControllerConfigDialog
pttControllerConfigClass: AccessibilityTabController
}
content: ColumnLayout {
spacing: 92
GroupBox {
Layout.fillWidth: true
label: MyText {
leftPadding: 10
text: "Adjust Player Height"
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 {
MyPushButton2 {
Layout.preferredWidth: 40
text: "-"
onClicked: {
accessibilityMoveYSlider.value -= 0.05
}
}
MySlider {
id: accessibilityMoveYSlider
from: 0
to: 1.5
stepSize: 0.01
value: 0.0
Layout.fillWidth: true
onPositionChanged: {
var val = this.from + ( this.position * (this.to - this.from))
accessibilityMoveYText.text = val.toFixed(2)
}
onValueChanged: {
AccessibilityTabController.heightOffset = this.value.toFixed(2)
}
}
MyPushButton2 {
Layout.preferredWidth: 40
text: "+"
onClicked: {
accessibilityMoveYSlider.value += 0.05
}
}
MyTextField {
id: accessibilityMoveYText
text: "0.00"
keyBoardUID: 700
Layout.preferredWidth: 140
Layout.leftMargin: 10
Layout.rightMargin: 10
horizontalAlignment: Text.AlignHCenter
function onInputEvent(input) {
var val = parseFloat(input)
if (!isNaN(val)) {
if (val >= accessibilityMoveYSlider.from && val <= accessibilityMoveYSlider.to) {
accessibilityMoveYSlider.value = val.toFixed(2);
} else {
AccessibilityTabController.setHeightOffset(val.toFixed(2), false);
}
}
text = AccessibilityTabController.heightOffset.toFixed(2)
}
}
}
RowLayout {
MyToggleButton {
id: heightOffsetPttEnabledToggle
Layout.preferredWidth: 260
text: "Push-to-Toggle:"
onClicked: {
AccessibilityTabController.pttEnabled = checked
}
}
MyToggleButton {
id: heightOffsetPttLeftControllerToggle
text: "Left Controller"
onClicked: {
AccessibilityTabController.setPttLeftControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(0)
}
}
Item {
Layout.fillWidth: true
}
MyToggleButton {
id: heightOffsetPttRightControllerToggle
text: "Right Controller"
onClicked: {
AccessibilityTabController.setPttRightControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(1)
}
}
}
}
}
Item { Layout.fillHeight: true; Layout.fillWidth: true}
MyPushButton {
id: accessibilityResetButton
Layout.preferredWidth: 250
text: "Reset"
onClicked: {
AccessibilityTabController.reset()
}
}
Component.onCompleted: {
var heightOffsetFormatted = AccessibilityTabController.heightOffset.toFixed(2)
if (heightOffsetFormatted >= accessibilityMoveYSlider.from && heightOffsetFormatted <= accessibilityMoveYSlider.to) {
accessibilityMoveYSlider.value = heightOffsetFormatted
}
accessibilityMoveYText.text = heightOffsetFormatted
heightOffsetPttEnabledToggle.checked = AccessibilityTabController.pttEnabled
heightOffsetPttLeftControllerToggle.checked = AccessibilityTabController.pttLeftControllerEnabled
heightOffsetPttRightControllerToggle.checked = AccessibilityTabController.pttRightControllerEnabled
}
Connections {
target: AccessibilityTabController
onHeightOffsetChanged: {
var heightOffsetFormatted = AccessibilityTabController.heightOffset.toFixed(2)
if (heightOffsetFormatted >= accessibilityMoveYSlider.from && heightOffsetFormatted <= accessibilityMoveYSlider.to) {
accessibilityMoveYSlider.value = heightOffsetFormatted
}
accessibilityMoveYText.text = heightOffsetFormatted
}
onPttEnabledChanged: {
heightOffsetPttEnabledToggle.checked = AccessibilityTabController.pttEnabled
}
onPttActiveChanged: {
}
onPttLeftControllerEnabledChanged: {
heightOffsetPttLeftControllerToggle.checked = AccessibilityTabController.pttLeftControllerEnabled
}
onPttRightControllerEnabledChanged: {
heightOffsetPttRightControllerToggle.checked = AccessibilityTabController.pttRightControllerEnabled
}
}
}
}
-11
View File
@@ -103,17 +103,6 @@ MyStackViewPage {
}
}
MyPushButton {
id: accessibilityButton
activationSoundEnabled: false
text: "Accessibility"
Layout.fillWidth: true
onClicked: {
MyResources.playFocusChangedSound()
mainView.push(accessibilityPage)
}
}
MyPushButton {
id: statisticsButton
activationSoundEnabled: false
-5
View File
@@ -65,11 +65,6 @@ Rectangle {
visible: false
}
property AccessibilityPage accessibilityPage: AccessibilityPage {
stackView: mainView
visible: false
}
StackView {
id: mainView
anchors.fill: parent
@@ -1,136 +0,0 @@
#include "AccessibilityTabController.h"
#include <QQuickWindow>
#include "../overlaycontroller.h"
// application namespace
namespace advsettings
{
void AccessibilityTabController::initStage1()
{
setTrackingUniverse( vr::VRCompositor()->GetTrackingSpace() );
auto settings = OverlayController::appSettings();
settings->beginGroup( getSettingsName() );
auto value = settings->value( "heightOffset", m_heightOffset );
settings->endGroup();
if ( value.isValid() && !value.isNull() )
{
m_heightOffset = value.toFloat();
emit heightOffsetChanged( m_heightOffset );
}
reloadPttConfig();
}
void AccessibilityTabController::initStage2( OverlayController* var_parent,
QQuickWindow* var_widget )
{
this->parent = var_parent;
this->widget = var_widget;
}
void AccessibilityTabController::setTrackingUniverse( int value )
{
if ( m_trackingUniverse != value )
{
reset();
m_trackingUniverse = value;
}
}
float AccessibilityTabController::heightOffset() const
{
return m_heightOffset;
}
void AccessibilityTabController::setHeightOffset( float value, bool notify )
{
if ( std::abs( m_heightOffset - value ) > 0.001 )
{
modHeightOffset( value - m_heightOffset, notify );
}
}
void AccessibilityTabController::modHeightOffset( float value, bool notify )
{
parent->AddOffsetToUniverseCenter(
( vr::TrackingUniverseOrigin ) m_trackingUniverse, 1, -value, false );
m_heightOffset += value;
auto settings = OverlayController::appSettings();
settings->beginGroup( getSettingsName() );
settings->setValue( "heightOffset", m_heightOffset );
settings->endGroup();
settings->sync();
if ( notify )
{
emit heightOffsetChanged( m_heightOffset );
}
}
void AccessibilityTabController::onPttStart()
{
m_toggleHeightOffset = m_heightOffset;
parent->AddOffsetToUniverseCenter(
( vr::TrackingUniverseOrigin ) m_trackingUniverse,
1,
m_toggleHeightOffset,
false );
}
void AccessibilityTabController::onPttStop()
{
parent->AddOffsetToUniverseCenter(
( vr::TrackingUniverseOrigin ) m_trackingUniverse,
1,
-m_toggleHeightOffset,
false );
}
void AccessibilityTabController::onPttDisabled()
{
if ( pttActive() )
{
stopPtt();
}
m_toggleHeightOffset = 0;
}
void AccessibilityTabController::reset()
{
std::lock_guard<std::recursive_mutex> lock( eventLoopMutex );
vr::VRChaperoneSetup()->RevertWorkingCopy();
parent->AddOffsetToUniverseCenter(
( vr::TrackingUniverseOrigin ) m_trackingUniverse,
1,
m_heightOffset,
false,
false );
vr::VRChaperoneSetup()->CommitWorkingCopy( vr::EChaperoneConfigFile_Live );
m_heightOffset = 0.0f;
emit heightOffsetChanged( m_heightOffset );
}
void AccessibilityTabController::eventLoopTick(
vr::ETrackingUniverseOrigin universe )
{
if ( !eventLoopMutex.try_lock() )
{
return;
}
if ( settingsUpdateCounter >= k_accessibilitySettingsUpdateCounter )
{
if ( parent->isDashboardVisible() )
{
setTrackingUniverse( ( int ) universe );
}
settingsUpdateCounter = 0;
}
else
{
settingsUpdateCounter++;
}
checkPttStatus();
eventLoopMutex.unlock();
}
} // namespace advsettings
@@ -1,54 +0,0 @@
#pragma once
#include "PttController.h"
class QQuickWindow;
// application namespace
namespace advsettings
{
// forward declaration
class OverlayController;
class AccessibilityTabController : public PttController
{
Q_OBJECT
Q_PROPERTY( float heightOffset READ heightOffset WRITE setHeightOffset
NOTIFY heightOffsetChanged )
private:
OverlayController* parent;
QQuickWindow* widget;
int m_trackingUniverse = ( int ) vr::TrackingUniverseStanding;
float m_heightOffset = 0.0f;
float m_toggleHeightOffset = 0.0f;
unsigned settingsUpdateCounter = 0;
QString getSettingsName() override
{
return "accessibilitySettings";
}
void onPttStart() override;
void onPttStop() override;
void onPttDisabled() override;
public:
void initStage1();
void initStage2( OverlayController* parent, QQuickWindow* widget );
void eventLoopTick( vr::ETrackingUniverseOrigin universe );
float heightOffset() const;
public slots:
void setTrackingUniverse( int value );
void setHeightOffset( float value, bool notify = true );
void modHeightOffset( float value, bool notify = true );
void reset();
signals:
void heightOffsetChanged( float value );
};
} // namespace advsettings