Push GUI config setting changes to the engine process' Hooke.
[hooke.git] / hooke / ui / __init__.py
index 02e91513238b299d65790799a96bff330b9d4104..cfdac7293bbc07ceb28cafa9cadd6597c081b7e6 100644 (file)
@@ -24,6 +24,7 @@ import logging
 
 from .. import version
 from ..config import Setting
+from ..engine import CommandMessage
 from ..util.pluggable import IsSubclass, construct_odict
 
 try:
@@ -87,6 +88,21 @@ class UserInterface (object):
         log.debug('executing %s' % command_message)
         ui_to_command_queue.put(command_message)
 
+    def _set_config(self, option, value, ui_to_command_queue, response_handler,
+                     section=None):
+        if section == None:
+            section = self.setting_section
+        if section in [self.setting_section, 'conditions']:
+            if self.config[option] == value:
+                return  # No change, so no need to push the new value.
+            self.config[option] = value
+        cm = CommandMessage(
+            command='set config',
+            arguments={'section': section, 'option': option, 'value': value})
+        self._submit_command(command_message=cm,
+                             ui_to_command_queue=ui_to_command_queue)
+        response_handler(command_message=cm)
+
     def _splash_text(self, extra_info, **kwargs):
         return ("""
 Hooke version %s