diff --git a/gui/arpeggiator_controls.py b/gui/arpeggiator_controls.py index 5bff8b3..8484cd1 100644 --- a/gui/arpeggiator_controls.py +++ b/gui/arpeggiator_controls.py @@ -1260,23 +1260,25 @@ class ArpeggiatorControls(QWidget): # Update delay timing buttons if hasattr(self, 'delay_timing_buttons') and hasattr(self.arpeggiator, 'delay_timing'): - # Clear current delay timing styling + # Clear current delay timing - uncheck old button if hasattr(self, 'current_delay_timing') and self.current_delay_timing in self.delay_timing_buttons: - self.apply_button_style(self.delay_timing_buttons[self.current_delay_timing], 10, "disabled") + self.delay_timing_buttons[self.current_delay_timing].setChecked(False) + # Set new active delay timing self.current_delay_timing = self.arpeggiator.delay_timing if self.current_delay_timing in self.delay_timing_buttons: - if self.delay_enabled: - self.apply_button_style(self.delay_timing_buttons[self.current_delay_timing], 10, "purple") - # Enable and style all timing buttons - for btn in self.delay_timing_buttons.values(): + # Check the correct timing button + self.delay_timing_buttons[self.current_delay_timing].setChecked(True) + + # Style all timing buttons based on delay enabled state + for timing, btn in self.delay_timing_buttons.items(): + if self.delay_enabled: btn.setEnabled(True) - if not btn.isChecked(): + if timing == self.current_delay_timing: + self.apply_button_style(btn, 10, "purple") + else: self.apply_button_style(btn, 10, "normal") - else: - self.apply_button_style(self.delay_timing_buttons[self.current_delay_timing], 10, "disabled") - # Disable all timing buttons - for btn in self.delay_timing_buttons.values(): + else: btn.setEnabled(False) self.apply_button_style(btn, 10, "disabled")