summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2017-07-03 17:58:04 -0400
committerPeter LaFosse <peter@vector35.com>2017-07-03 17:58:04 -0400
commitc154e1f9400f6a8838405f4a4fd41dbc6f2fcba3 (patch)
treea8d6b6164fd31dc442962d263c826d27b8349a26 /python
parent88ec179d9519221744240e347bc94da09bbc2157 (diff)
Add setting removal APIs, allow negative integers
Diffstat (limited to 'python')
-rw-r--r--python/setting.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/python/setting.py b/python/setting.py
index 975f393e..d52ac1ec 100644
--- a/python/setting.py
+++ b/python/setting.py
@@ -40,7 +40,7 @@ class Setting(object):
def get_integer_list(self, name):
length = ctypes.c_ulonglong()
length.value = 0
- default_list = ctypes.POINTER(ctypes.c_ulonglong)()
+ default_list = ctypes.POINTER(ctypes.c_longlong)()
result = core.BNSettingGetIntegerList(self.plugin_name, name, default_list, ctypes.byref(length))
out_list = []
for i in xrange(length.value):
@@ -56,7 +56,7 @@ class Setting(object):
out_list = []
for i in xrange(length.value):
out_list.append(result[i])
- core.BNFreeSettingStringList(result, length)
+ core.BNFreeStringList(result, length)
return out_list
def get_double(self, name, default_value=0.0):
@@ -92,16 +92,16 @@ class Setting(object):
def set_string(self, name, value, auto_flush=True):
return core.BNSettingSetString(self.plugin_name, name, value, auto_flush)
- def set_integerList(self, name, value, auto_flush=True):
+ def set_integer_list(self, name, value, auto_flush=True):
length = ctypes.c_ulonglong()
length.value = len(value)
- default_list = (ctypes.c_ulonglong * len(value))()
+ default_list = (ctypes.c_longlong * len(value))()
for i in xrange(len(value)):
default_list[i] = value[i]
return core.BNSettingSetIntegerList(self.plugin_name, name, default_list, length, auto_flush)
- def set_stringList(self, name, value, auto_flush=True):
+ def set_string_list(self, name, value, auto_flush=True):
length = ctypes.c_ulonglong()
length.value = len(value)
default_list = (ctypes.c_char_p * len(value))()
@@ -112,3 +112,26 @@ class Setting(object):
def set_double(self, name, value, auto_flush=True):
return core.BNSettingSetDouble(self.plugin_name, name, value, auto_flush)
+
+ def set(self, name, value, auto_flush=True):
+ if isinstance(value, bool):
+ return self.set_bool(name, value, auto_flush)
+ elif isinstance(value, int):
+ return self.set_integer(name, value, auto_flush)
+ elif isinstance(value, str):
+ return self.set_string(name, value, auto_flush)
+ elif isinstance(value, list) and len(value) == 0:
+ return self.set_integer_list(name, value, auto_flush)
+ elif isinstance(value, list) and len(value) > 0 and isinstance(value[0], int):
+ return self.set_integer_list(name, value, auto_flush)
+ elif isinstance(value, list) and len(value) > 0 and isinstance(value[0], str):
+ return self.set_string_list(name, value, auto_flush)
+ elif isinstance(value, float):
+ return self.set_double(name, value, auto_flush)
+ raise ValueError("value is not one of (int, bool, float, str, [int], [str]) types")
+
+ def remove_setting_group(self, auto_flush=True):
+ core.BNSettingRemoveSettingGroup(self.plugin_name, auto_flush)
+
+ def remove_setting(self, setting, auto_flush=True):
+ core.BNSettingRemoveSetting(self.plugin_name, setting, auto_flush) \ No newline at end of file