From aedc631c45371ff51a8d49d6889a2787e4d3fe06 Mon Sep 17 00:00:00 2001
From: Sam Gateau <samuel.gateau@gmail.com>
Date: Tue, 28 May 2019 21:55:17 -0700
Subject: [PATCH] Gathering all the needed settings in one place

---
 .../src/scripting/PerformanceScriptingInterface.cpp |  5 +++++
 .../src/scripting/PerformanceScriptingInterface.h   |  3 ++-
 .../src/scripting/RenderScriptingInterface.cpp      |  5 +++++
 interface/src/scripting/RenderScriptingInterface.h  |  8 ++++++++
 .../utilities/render/luci/RenderSettings.qml        | 13 +++++++++----
 5 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/interface/src/scripting/PerformanceScriptingInterface.cpp b/interface/src/scripting/PerformanceScriptingInterface.cpp
index b1b4e62dca..b1a6fcccae 100644
--- a/interface/src/scripting/PerformanceScriptingInterface.cpp
+++ b/interface/src/scripting/PerformanceScriptingInterface.cpp
@@ -27,6 +27,11 @@ PerformanceScriptingInterface::RefreshRateProfile PerformanceScriptingInterface:
     return (PerformanceScriptingInterface::RefreshRateProfile)qApp->getRefreshRateManager().getRefreshRateProfile();
 }
 
+QStringList PerformanceScriptingInterface::getRefreshRateProfileNames() const {
+    static const QStringList refreshRateProfileNames = { "Eco", "Interactive", "Realtime" };
+    return refreshRateProfileNames;
+}
+
 int PerformanceScriptingInterface::getActiveRefreshRate() const {
     return qApp->getRefreshRateManager().getActiveRefreshRate();
 }
diff --git a/interface/src/scripting/PerformanceScriptingInterface.h b/interface/src/scripting/PerformanceScriptingInterface.h
index 90b51d173c..2138afdc65 100644
--- a/interface/src/scripting/PerformanceScriptingInterface.h
+++ b/interface/src/scripting/PerformanceScriptingInterface.h
@@ -33,14 +33,15 @@ public:
     ~PerformanceScriptingInterface() = default;
 
 public slots:
+
     void setRefreshRateProfile(RefreshRateProfile refreshRateProfile);
     RefreshRateProfile getRefreshRateProfile() const;
+    QStringList getRefreshRateProfileNames() const;
 
     int getActiveRefreshRate() const;
     RefreshRateManager::UXMode getUXMode() const;
     RefreshRateManager::RefreshRateRegime getRefreshRateRegime() const;
 
-
 private:
     static std::once_flag registry_flag;
 };
diff --git a/interface/src/scripting/RenderScriptingInterface.cpp b/interface/src/scripting/RenderScriptingInterface.cpp
index 14fd9c6878..1185ca93b0 100644
--- a/interface/src/scripting/RenderScriptingInterface.cpp
+++ b/interface/src/scripting/RenderScriptingInterface.cpp
@@ -48,6 +48,11 @@ void RenderScriptingInterface::setRenderMethod(RenderScriptingInterface::RenderM
     }
 }
 
+QStringList RenderScriptingInterface::getRenderMethodNames() const {
+    static const QStringList refrenderMethodNames = { "Deferred", "Forward" };
+    return refrenderMethodNames;
+}
+
 bool RenderScriptingInterface::getShadowsEnabled() {
     return _shadowsEnabledSetting.get();
 }
diff --git a/interface/src/scripting/RenderScriptingInterface.h b/interface/src/scripting/RenderScriptingInterface.h
index 5476ac7cbf..907b62a465 100644
--- a/interface/src/scripting/RenderScriptingInterface.h
+++ b/interface/src/scripting/RenderScriptingInterface.h
@@ -68,6 +68,14 @@ public slots:
      */
     void setRenderMethod(RenderMethod renderMethod);
 
+    /**jsdoc
+    * Gets the possible enum names of the RenderMethod type
+    * @function Render.getRenderMethodNames
+    * @returns [string] [ <code>"DEFERRED"</code>, <code>"FORWARD"</code> ]
+    */
+    QStringList getRenderMethodNames() const;
+
+
     /**jsdoc
      * Whether or not shadows are enabled
      * @function Render.getShadowsEnabled
diff --git a/scripts/developer/utilities/render/luci/RenderSettings.qml b/scripts/developer/utilities/render/luci/RenderSettings.qml
index 13a124db26..042ea3776b 100644
--- a/scripts/developer/utilities/render/luci/RenderSettings.qml
+++ b/scripts/developer/utilities/render/luci/RenderSettings.qml
@@ -19,14 +19,19 @@ Column {
     anchors.fill: parent 
     id: theGrapchicsSettings;   
 
+    Prop.PropEnum {
+        label: "Refresh Rate Profile"
+        //object: Performance
+        valueVarSetter: Performance.setRefreshRateProfile 
+        valueVarGetter: Performance.getRefreshRateProfile 
+        enums: Performance.getRefreshRateProfileNames()
+    }
+
     Prop.PropEnum {
         label: "Render Method"
         object: Render
         property: "renderMethod"
-        enums: [
-            "Deferred",
-            "Forward"
-                ]
+        enums: Render.getRenderMethodNames()
     }
 
     Prop.PropBool {