Added "Force Revive Page" checkbox to application settings.

This commit is contained in:
2016-12-24 15:56:21 +01:00
parent 3f53235b1b
commit 342f4795df
6 changed files with 59 additions and 7 deletions
+12 -4
View File
@@ -5,12 +5,13 @@ import matzman666.advsettings 1.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file import "." // QTBUG-34418, singletons require explicit import to load qmldir file
MyStackViewPage { MyStackViewPage {
id: rootPage
width: 1200 width: 1200
height: 800 height: 800
headerText: "OpenVR Advanced Settings" headerText: "OpenVR Advanced Settings"
headerShowBackButton: false headerShowBackButton: false
stackView: mainView stackView: mainView
content: Item { content: Item {
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
RowLayout { RowLayout {
@@ -81,7 +82,7 @@ MyStackViewPage {
activationSoundEnabled: false activationSoundEnabled: false
text: "Revive" text: "Revive"
Layout.fillWidth: true Layout.fillWidth: true
visible: ReviveTabController.isOverlayInstalled visible: SettingsTabController.forceRevivePage ? true : ReviveTabController.isOverlayInstalled
onClicked: { onClicked: {
MyResources.playFocusChangedSound() MyResources.playFocusChangedSound()
mainView.push(revivePage) mainView.push(revivePage)
@@ -394,6 +395,13 @@ MyStackViewPage {
} }
} }
Connections {
target: SettingsTabController
onForceRevivePageChanged: {
reviveButton.enabled = SettingsTabController.forceRevivePage
}
}
function updateStatistics() { function updateStatistics() {
var rotations = StatisticsTabController.hmdRotations var rotations = StatisticsTabController.hmdRotations
if (rotations > 0) { if (rotations > 0) {
+12
View File
@@ -18,12 +18,21 @@ MyStackViewPage {
} }
} }
MyToggleButton {
id: forceReviveToggle
text: "Force Revive Page"
onCheckedChanged: {
SettingsTabController.setForceRevivePage(checked, true)
}
}
Item { Item {
Layout.fillHeight: true Layout.fillHeight: true
} }
Component.onCompleted: { Component.onCompleted: {
settingsAutoStartToggle.checked = SettingsTabController.autoStartEnabled settingsAutoStartToggle.checked = SettingsTabController.autoStartEnabled
forceReviveToggle.checked = SettingsTabController.forceRevivePage
} }
Connections { Connections {
@@ -31,6 +40,9 @@ MyStackViewPage {
onAutoStartEnabledChanged: { onAutoStartEnabledChanged: {
settingsAutoStartToggle.checked = SettingsTabController.autoStartEnabled settingsAutoStartToggle.checked = SettingsTabController.autoStartEnabled
} }
onForceRevivePageChanged: {
forceReviveToggle.checked = SettingsTabController.forceRevivePage
}
} }
} }
} }
+1
View File
@@ -67,6 +67,7 @@ private:
QUrl m_runtimePathUrl; QUrl m_runtimePathUrl;
public: // I know it's an ugly hack to make them public to enable external access, but I am too lazy to implement getters.
SteamVRTabController steamVRTabController; SteamVRTabController steamVRTabController;
ChaperoneTabController chaperoneTabController; ChaperoneTabController chaperoneTabController;
MoveCenterTabController moveCenterTabController; MoveCenterTabController moveCenterTabController;
+2 -3
View File
@@ -26,7 +26,7 @@ namespace advsettings {
void ReviveTabController::initStage1() { void ReviveTabController::initStage1() {
m_isOverlayInstalled = vr::VRApplications()->IsApplicationInstalled(appkey_overlay); m_isOverlayInstalled = vr::VRApplications()->IsApplicationInstalled(appkey_overlay);
if (m_isOverlayInstalled) { if (m_isOverlayInstalled || parent->settingsTabController.forceRevivePage()) {
vr::EVRSettingsError vrSettingsError; vr::EVRSettingsError vrSettingsError;
float valuef = vr::VRSettings()->GetFloat(section_revive, key_pixelsPerDisplayPixel, &vrSettingsError); float valuef = vr::VRSettings()->GetFloat(section_revive, key_pixelsPerDisplayPixel, &vrSettingsError);
@@ -157,7 +157,7 @@ namespace advsettings {
} }
void ReviveTabController::eventLoopTick() { void ReviveTabController::eventLoopTick() {
if (m_isOverlayInstalled) { if (m_isOverlayInstalled || parent->settingsTabController.forceRevivePage()) {
if (settingsUpdateCounter >= 50) { if (settingsUpdateCounter >= 50) {
settingsUpdateCounter = 0; settingsUpdateCounter = 0;
vr::EVRSettingsError vrSettingsError; vr::EVRSettingsError vrSettingsError;
@@ -718,7 +718,6 @@ namespace advsettings {
} }
void ReviveTabController::addControllerProfile(QString name) { void ReviveTabController::addControllerProfile(QString name) {
vr::EVRSettingsError vrSettingsError;
ReviveControllerProfile* profile = nullptr; ReviveControllerProfile* profile = nullptr;
for (auto& p : controllerProfiles) { for (auto& p : controllerProfiles) {
if (p.profileName.compare(name.toStdString()) == 0) { if (p.profileName.compare(name.toStdString()) == 0) {
@@ -8,6 +8,13 @@ namespace advsettings {
void SettingsTabController::initStage1() { void SettingsTabController::initStage1() {
m_autoStartEnabled = vr::VRApplications()->GetApplicationAutoLaunch(OverlayController::applicationKey); m_autoStartEnabled = vr::VRApplications()->GetApplicationAutoLaunch(OverlayController::applicationKey);
auto settings = OverlayController::appSettings();
settings->beginGroup("applicationSettings");
auto value = settings->value("forceRevivePage", m_forceRevivePage);
settings->endGroup();
if (value.isValid() && !value.isNull()) {
m_forceRevivePage = value.toBool();
}
} }
void SettingsTabController::initStage2(OverlayController * parent, QQuickWindow * widget) { void SettingsTabController::initStage2(OverlayController * parent, QQuickWindow * widget) {
@@ -41,4 +48,24 @@ void SettingsTabController::setAutoStartEnabled(bool value, bool notify) {
} }
} }
bool SettingsTabController::forceRevivePage() const {
return m_forceRevivePage;
}
void SettingsTabController::setForceRevivePage(bool value, bool notify) {
if (m_forceRevivePage != value) {
m_forceRevivePage = value;
auto settings = OverlayController::appSettings();
settings->beginGroup("applicationSettings");
settings->setValue("forceRevivePage", m_forceRevivePage);
settings->endGroup();
settings->sync();
if (notify) {
emit forceRevivePageChanged(m_forceRevivePage);
}
}
}
} // namespace advconfig } // namespace advconfig
@@ -14,6 +14,7 @@ class OverlayController;
class SettingsTabController : public QObject { class SettingsTabController : public QObject {
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool autoStartEnabled READ autoStartEnabled WRITE setAutoStartEnabled NOTIFY autoStartEnabledChanged) Q_PROPERTY(bool autoStartEnabled READ autoStartEnabled WRITE setAutoStartEnabled NOTIFY autoStartEnabledChanged)
Q_PROPERTY(bool forceRevivePage READ forceRevivePage WRITE setForceRevivePage NOTIFY forceRevivePageChanged)
private: private:
OverlayController* parent; OverlayController* parent;
@@ -22,6 +23,7 @@ private:
unsigned settingsUpdateCounter = 0; unsigned settingsUpdateCounter = 0;
bool m_autoStartEnabled = false; bool m_autoStartEnabled = false;
bool m_forceRevivePage = false;
public: public:
void initStage1(); void initStage1();
@@ -30,12 +32,15 @@ public:
void eventLoopTick(); void eventLoopTick();
bool autoStartEnabled() const; bool autoStartEnabled() const;
bool forceRevivePage() const;
public slots: public slots:
void setAutoStartEnabled(bool value, bool notify = true); void setAutoStartEnabled(bool value, bool notify = true);
void setForceRevivePage(bool value, bool notify = true);
signals: signals:
void autoStartEnabledChanged(bool value); void autoStartEnabledChanged(bool value);
void forceRevivePageChanged(bool value);
}; };
} // namespace advsettings } // namespace advsettings