Merge pull request #15686 from samcake/nut

BUGZ-442: Adding extra check when setting Performance & render api enums
This commit is contained in:
Sabrina Shanman 2019-06-06 13:58:09 -07:00 committed by GitHub
commit 73ac38a6a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 18 additions and 22 deletions

View file

@ -41,7 +41,7 @@ void PerformanceManager::setupPerformancePresetSettings(bool evaluatePlatformTie
}
void PerformanceManager::setPerformancePreset(PerformanceManager::PerformancePreset preset) {
if (getPerformancePreset() != preset) {
if (isValidPerformancePreset(preset) && (getPerformancePreset() != preset)) {
_performancePresetSettingLock.withWriteLock([&] {
_performancePresetSetting.set((int)preset);
});

View file

@ -26,6 +26,7 @@ public:
HIGH,
PROFILE_COUNT
};
static bool isValidPerformancePreset(int value) { return (value >= PerformancePreset::UNKNOWN && value <= PerformancePreset::HIGH); }
PerformanceManager();
~PerformanceManager() = default;

View file

@ -94,7 +94,7 @@ void RefreshRateManager::toggleInactive() {
}
void RefreshRateManager::setRefreshRateProfile(RefreshRateManager::RefreshRateProfile refreshRateProfile) {
if (_refreshRateProfile != refreshRateProfile) {
if (isValidRefreshRateProfile(refreshRateProfile) && (_refreshRateProfile != refreshRateProfile)) {
_refreshRateProfileSettingLock.withWriteLock([&] {
_refreshRateProfile = refreshRateProfile;
_refreshRateProfileSetting.set((int) refreshRateProfile);
@ -124,7 +124,7 @@ RefreshRateManager::RefreshRateRegime RefreshRateManager::getRefreshRateRegime()
}
void RefreshRateManager::setRefreshRateRegime(RefreshRateManager::RefreshRateRegime refreshRateRegime) {
if (_refreshRateRegime != refreshRateRegime) {
if (isValidRefreshRateRegime(refreshRateRegime) && (_refreshRateRegime != refreshRateRegime)) {
_refreshRateRegime = refreshRateRegime;
updateRefreshRateController();
}
@ -132,7 +132,7 @@ void RefreshRateManager::setRefreshRateRegime(RefreshRateManager::RefreshRateReg
}
void RefreshRateManager::setUXMode(RefreshRateManager::UXMode uxMode) {
if (_uxMode != uxMode) {
if (isValidUXMode(uxMode) && (_uxMode != uxMode)) {
_uxMode = uxMode;
updateRefreshRateController();
}

View file

@ -29,6 +29,7 @@ public:
REALTIME,
PROFILE_NUM
};
static bool isValidRefreshRateProfile(RefreshRateProfile value) { return (value >= RefreshRateProfile::ECO && value <= RefreshRateProfile::REALTIME); }
enum RefreshRateRegime {
FOCUS_ACTIVE = 0,
@ -39,12 +40,14 @@ public:
SHUTDOWN,
REGIME_NUM
};
static bool isValidRefreshRateRegime(RefreshRateRegime value) { return (value >= RefreshRateRegime::FOCUS_ACTIVE && value <= RefreshRateRegime::SHUTDOWN); }
enum UXMode {
DESKTOP = 0,
VR,
UX_NUM
};
static bool isValidUXMode(UXMode value) { return (value >= UXMode::DESKTOP && value <= UXMode::VR); }
RefreshRateManager();
~RefreshRateManager() = default;

View file

@ -42,7 +42,7 @@ RenderScriptingInterface::RenderMethod RenderScriptingInterface::getRenderMethod
}
void RenderScriptingInterface::setRenderMethod(RenderMethod renderMethod) {
if (_renderMethod != (int) renderMethod) {
if (isValidRenderMethod(renderMethod) && (_renderMethod != (int) renderMethod)) {
forceRenderMethod(renderMethod);
emit settingsChanged();
}

View file

@ -41,6 +41,7 @@ public:
FORWARD = render::Args::RenderMethod::FORWARD,
};
Q_ENUM(RenderMethod)
static bool isValidRenderMethod(RenderMethod value) { return (value >= RenderMethod::DEFERRED && value <= RenderMethod::FORWARD); }
// Load Settings

View file

@ -14,12 +14,6 @@ PropItem {
Global { id: global }
id: root
property alias valueVar : checkboxControl.checked
Component.onCompleted: {
valueVar = root.valueVarGetter();
}
PropCheckBox {
id: checkboxControl
@ -27,6 +21,7 @@ PropItem {
anchors.verticalCenter: root.verticalCenter
width: root.width * global.valueAreaWidthScale
checked: root.valueVarGetter();
onCheckedChanged: { root.valueVarSetter(checked); }
}
}

View file

@ -15,13 +15,8 @@ PropItem {
Global { id: global }
id: root
property alias valueVar : valueCombo.currentIndex
property alias enums : valueCombo.model
Component.onCompleted: {
valueVar = root.valueVarGetter();
}
PropComboBox {
id: valueCombo
@ -33,6 +28,6 @@ PropItem {
height: global.slimHeight
currentIndex: root.valueVarGetter()
onCurrentIndexChanged: { root.valueVarSetter(currentIndex); }
onCurrentIndexChanged: root.valueVarSetter(currentIndex)
}
}

View file

@ -23,7 +23,7 @@ Item {
// value is accessed through the "valueVarSetter" and "valueVarGetter"
// By default, these just go get or set the value from the object[property]
//
function defaultGet() { return root.object[root.property]; }
function defaultGet() { var v = root.object[root.property]; return v; }
function defaultSet(value) { root.object[root.property] = value; }
// function defaultSetReadOnly(value) { log ( "read only " + property + ", NOT setting to " + value); }
// function defaultSetReadOnly(value) {}

View file

@ -30,7 +30,7 @@ PropItem {
Component.onCompleted: {
valueVar = root.valueVarGetter();
}
}
PropLabel {
id: valueLabel

View file

@ -29,7 +29,7 @@ Column {
label: "Debug Buffer"
object: config
property: "mode"
valueVar: 0
// valueVar: 0
enums: [
"Off",
"Depth",

View file

@ -32,6 +32,7 @@ Column {
}
Prop.PropEnum {
id: refreshrateProfileControl
label: "Refresh Rate Profile"
object: Performance
property: "refreshRateProfile"

View file

@ -50,7 +50,7 @@ Rectangle {
}
}
}
/* Prop.PropFolderPanel {
Prop.PropFolderPanel {
label: "Platform"
panelFrameData: Component {
Platform {
@ -58,7 +58,7 @@ Rectangle {
anchors.right: parent.right
}
}
}*/
}
}
}
}