]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/commitdiff
Fix configuring not resetting the key
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 13 Aug 2016 21:09:12 +0000 (23:09 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 19 Sep 2016 11:57:11 +0000 (13:57 +0200)
music_sampler/key.py

index ce2f45bafd8bf9ca9cbdf47c48070eb99615e4cb..68e6f0454a84b9576c2d8421cbecbc5bfb4643fa 100644 (file)
@@ -119,21 +119,20 @@ class KeyMachine(Widget):
         return self.is_loaded_no_config() or self.is_loaded_no_actions()
 
     def on_enter_configuring(self):
+        self.destroy_actions()
+        self.key.unset_description()
+        self.key.unset_color()
+
         if self.key.key_sym in self.key.parent.key_config:
             self.key.config = self.key.parent.key_config[self.key.key_sym]
 
-            self.key.actions = []
             for key_action in self.key.config['actions']:
                 self.key.add_action(key_action[0], **key_action[1])
 
             if 'description' in self.key.config['properties']:
                 self.key.set_description(self.key.config['properties']['description'])
-            else:
-                self.key.unset_description()
             if 'color' in self.key.config['properties']:
                 self.key.set_color(self.key.config['properties']['color'])
-            else:
-                self.key.unset_color()
             self.success()
         else:
             self.no_config()
@@ -145,6 +144,11 @@ class KeyMachine(Widget):
         else:
             self.no_actions()
 
+    def destroy_actions(self):
+        for action in self.key.actions:
+            action.destroy()
+        self.key.actions = []
+
     def run_actions(self, modifiers):
         self.key.parent.parent.ids['KeyList'].append(self.key.key_sym)
         debug_print("running actions for {}".format(self.key.key_sym))