From d58de87c338415457c6ff9f546f707a51ca42493 Mon Sep 17 00:00:00 2001
From: Adrian Kummerlaender
Date: Sat, 22 Aug 2015 20:56:21 +0200
Subject: Replaced unnecessary `eval` calls in settings getter and setter

---
 src/SettingsHandler.qml | 43 ++++++++-----------------------------------
 src/command/commands.js |  2 +-
 2 files changed, 9 insertions(+), 36 deletions(-)

diff --git a/src/SettingsHandler.qml b/src/SettingsHandler.qml
index f281da1..fd13473 100644
--- a/src/SettingsHandler.qml
+++ b/src/SettingsHandler.qml
@@ -2,46 +2,19 @@ import QtQuick 2.0
 import Qt.labs.settings 1.0
 
 QtObject {
-	function getSetter(category, name) {
-		try {
-			var type = typeof eval(category + '.' + name);
-
-			switch ( type ) {
-				case 'undefined': {
-					throw new ReferenceError();
-					break;
-				}
-				case 'string': {
-					return function(value) {
-						return eval(category + '.' + name + ' = "' + value + '"');
-					}
-					break;
-				}
-				default: {
-					return function(value) {
-						return eval(category + '.' + name + ' = ' + value);
-					}
-					break;
-				}
-			}
-		}
-		catch (exception) {
+	function read(category, name) {
+		if ( typeof this[category][name] === 'undefined' ) {
 			throw category + '.' + name + ' doesnt exist.';
+		} else {
+			return this[category][name];
 		}
 	}
 
-	function read(category, name) {
-		try {
-			var value = eval(category + '.' + name);
-
-			if ( typeof value === 'undefined' ) {
-				throw new ReferenceError();
-			} else {
-				return value;
-			}
-		}
-		catch (exception) {
+	function set(category, name, value) {
+		if ( typeof this[category][name] === 'undefined' ) {
 			throw category + '.' + name + ' doesnt exist.';
+		} else {
+			this[category][name] = value;
 		}
 	}
 
diff --git a/src/command/commands.js b/src/command/commands.js
index d2a53af..333eb98 100644
--- a/src/command/commands.js
+++ b/src/command/commands.js
@@ -79,7 +79,7 @@ function set(output, args) {
 			break;
 		}
 		case 3: {
-			settings.getSetter(args[0], args[1])(args[2]);
+			settings.set(args[0], args[1], args[2]);
 			break;
 		}
 		default: {
-- 
cgit v1.2.3