Added "Force Revive Page" checkbox to application settings.
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user