]> git.0d.be Git - jack_mixer.git/commitdiff
Store all preferences to xml save file
authorDaniel Sheeler <dsheeler@pobox.com>
Tue, 30 Jun 2020 23:42:04 +0000 (18:42 -0500)
committerDaniel Sheeler <dsheeler@pobox.com>
Tue, 30 Jun 2020 23:42:04 +0000 (18:42 -0500)
gui.py
jack_mixer.py

diff --git a/gui.py b/gui.py
index b881314e8594725da1344939b6a13d7f589ac6d9..7368ff0b3c85ea59cb9f237ff326b9ecf78c123d 100644 (file)
--- a/gui.py
+++ b/gui.py
@@ -82,6 +82,11 @@ class Factory(GObject.GObject, SerializedObject):
 
         self.use_custom_widgets = self.config["Preferences"]["use_custom_widgets"] == 'True'
 
+        try:
+            self.midi_behavior_mode = self.config["Preferences"]["midi_behavior_mode"]
+        except:
+            self.midi_behavior_mode = 0
+
     def write_preferences(self):
         self.config['Preferences'] = {}
         self.config['Preferences']['default_meter_scale'] = self.default_meter_scale.scale_id
@@ -89,8 +94,10 @@ class Factory(GObject.GObject, SerializedObject):
         self.config['Preferences']['vumeter_color_scheme'] = self.vumeter_color_scheme
         self.config['Preferences']['vumeter_color'] = self.vumeter_color
         self.config['Preferences']['use_custom_widgets'] = str(self.use_custom_widgets)
+        self.config['Preferences']['midi_behavior_mode'] = str(self.midi_behavior_mode)
         with open(self.path, 'w') as configfile:
             self.config.write(configfile)
+            configfile.close()
 
     def set_default_meter_scale(self, scale):
         if scale:
@@ -129,7 +136,7 @@ class Factory(GObject.GObject, SerializedObject):
         self.emit('use-custom-widgets-changed', self.use_custom_widgets)
 
     def set_midi_behavior_mode(self, mode):
-        self.midi_behavior_mode = mode
+        self.midi_behavior_mode = int(mode)
         self.emit("midi-behavior-mode-changed", self.midi_behavior_mode)
 
     def get_default_meter_scale(self):
@@ -155,12 +162,37 @@ class Factory(GObject.GObject, SerializedObject):
         return 'gui_factory'
 
     def serialize(self, object_backend):
+        object_backend.add_property("default_meter_scale",
+                self.get_default_meter_scale().scale_id)
+        object_backend.add_property("default_slider_scale",
+                self.get_default_slider_scale().scale_id)
+        object_backend.add_property("vumeter_color_scheme",
+                self.get_vumeter_color_scheme())
+        object_backend.add_property("vumeter_color",
+                self.get_vumeter_color())
+        object_backend.add_property("use_custom_widgets",
+                str(self.get_use_custom_widgets()))
         object_backend.add_property("midi_behavior_mode",
-                self.midi_behavior_modes[self.get_midi_behavior_mode()])
+                str(self.get_midi_behavior_mode()))
 
     def unserialize_property(self, name, value):
+        if name == "default_meter_scale":
+            self.set_default_meter_scale(lookup_scale(self.meter_scales, value))
+            return True
+        if name == "default_slider_scale":
+            self.set_default_slider_scale(lookup_scale(self.slider_scales, value))
+            return True
+        if name == "vumeter_color_scheme":
+            self.set_vumeter_color_scheme(value)
+            return True
+        if name == "vumeter_color":
+            self.set_vumeter_color(value)
+            return True
+        if name == "use_custom_widgets":
+            self.set_use_custom_widgets(value == 'True')
+            return True
         if name == "midi_behavior_mode":
-            self.set_midi_behavior_mode(self.midi_behavior_modes.index(value))
+            self.set_midi_behavior_mode(int(value))
             return True
         return False
 
index 25793b9b1830dcfa4af1c6e3cfb1fd6f766a1869..77e14e0fe63f41b74cf42abfb8036c8c3efe69b8 100755 (executable)
@@ -718,8 +718,6 @@ Franklin Street, Fifth Floor, Boston, MA 02110-130159 USA''')
             return channel
 
         if name == gui.Factory.serialization_name():
-            self.gui_factory = gui.Factory(self.window, self.meter_scales, self.slider_scales)
-            self.gui_factory.connect('midi-behavior-mode-changed', self.on_midi_behavior_mode_changed)
             return self.gui_factory
 
     def serialization_get_childs(self):