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
11 11
12#include "SettingsScriptingInterface.h"12#include "SettingsScriptingInterface.h"
13 13
14#include <QtScript/QScriptContext>
14#include <SettingHandle.h>15#include <SettingHandle.h>
15 16
16SettingsScriptingInterface* SettingsScriptingInterface::getInstance() {17SettingsScriptingInterface* SettingsScriptingInterface::getInstance() {
@@ -35,6 +36,14 @@ QVariant SettingsScriptingInterface::getValue(const QString& setting, const QVar · 18 unmodified lines
35}36}
36 37
37void SettingsScriptingInterface::setValue(const QString& setting, const QVariant& value) {38void 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 }
38 // Make a deep-copy of the string.47 // Make a deep-copy of the string.
39 // Dangling pointers can occur with QStrings that are implicitly shared from a QScriptEngine.48 // Dangling pointers can occur with QStrings that are implicitly shared from a QScriptEngine.
40 QString deepCopy = QString::fromUtf16(setting.utf16());49 QString deepCopy = QString::fromUtf16(setting.utf16());