History

QML-only write access for 'private/' Settings keys

humbletim committed 7 years ago

Commit d334a2e1 parent 6ae75ec3 files · +21 −3Browse files

Showing the changes to interface/src/scripting/SettingsScriptingInterface.cpp (1 of 3 files). Show all

Unified · Split

interface/src/scripting/SettingsScriptingInterface.cpp+9−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111
1212 #include "SettingsScriptingInterface.h"
1313
14+#include <QtScript/QScriptContext>
1415 #include <SettingHandle.h>
1516
1617 SettingsScriptingInterface* SettingsScriptingInterface::getInstance() {
@@ -35,6 +36,14 @@ QVariant SettingsScriptingInterface::getValue(const QString& setting, const QVar · 18 unmodified lines
3536 }
3637
3738 void SettingsScriptingInterface::setValue(const QString& setting, const QVariant& value) {
39+ if (setting.startsWith("private/")) {
40+ if (_restrictPrivateValues) {
41+ qWarning() << "SettingsScriptingInterface::setValue -- restricted write: " << setting << value;
42+ return;
43+ } else {
44+ qInfo() << "SettingsScriptingInterface::setValue -- allowing restricted write: " << setting << value;
45+ }
46+ }
3847 // Make a deep-copy of the string.
3948 // Dangling pointers can occur with QStrings that are implicitly shared from a QScriptEngine.
4049 QString deepCopy = QString::fromUtf16(setting.utf16());