aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--music_sampler/key.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/music_sampler/key.py b/music_sampler/key.py
index ce2f45b..68e6f04 100644
--- a/music_sampler/key.py
+++ b/music_sampler/key.py
@@ -119,21 +119,20 @@ class KeyMachine(Widget):
119 return self.is_loaded_no_config() or self.is_loaded_no_actions() 119 return self.is_loaded_no_config() or self.is_loaded_no_actions()
120 120
121 def on_enter_configuring(self): 121 def on_enter_configuring(self):
122 self.destroy_actions()
123 self.key.unset_description()
124 self.key.unset_color()
125
122 if self.key.key_sym in self.key.parent.key_config: 126 if self.key.key_sym in self.key.parent.key_config:
123 self.key.config = self.key.parent.key_config[self.key.key_sym] 127 self.key.config = self.key.parent.key_config[self.key.key_sym]
124 128
125 self.key.actions = []
126 for key_action in self.key.config['actions']: 129 for key_action in self.key.config['actions']:
127 self.key.add_action(key_action[0], **key_action[1]) 130 self.key.add_action(key_action[0], **key_action[1])
128 131
129 if 'description' in self.key.config['properties']: 132 if 'description' in self.key.config['properties']:
130 self.key.set_description(self.key.config['properties']['description']) 133 self.key.set_description(self.key.config['properties']['description'])
131 else:
132 self.key.unset_description()
133 if 'color' in self.key.config['properties']: 134 if 'color' in self.key.config['properties']:
134 self.key.set_color(self.key.config['properties']['color']) 135 self.key.set_color(self.key.config['properties']['color'])
135 else:
136 self.key.unset_color()
137 self.success() 136 self.success()
138 else: 137 else:
139 self.no_config() 138 self.no_config()
@@ -145,6 +144,11 @@ class KeyMachine(Widget):
145 else: 144 else:
146 self.no_actions() 145 self.no_actions()
147 146
147 def destroy_actions(self):
148 for action in self.key.actions:
149 action.destroy()
150 self.key.actions = []
151
148 def run_actions(self, modifiers): 152 def run_actions(self, modifiers):
149 self.key.parent.parent.ids['KeyList'].append(self.key.key_sym) 153 self.key.parent.parent.ids['KeyList'].append(self.key.key_sym)
150 debug_print("running actions for {}".format(self.key.key_sym)) 154 debug_print("running actions for {}".format(self.key.key_sym))