Browse Source

Fix delay timing buttons checked state in GUI sync

- Add proper setChecked(True/False) calls for delay timing buttons
- Ensure correct timing button shows as selected when loading preset
- Clear previous timing button selection before setting new one
- Fix timing button styling to properly reflect enabled/disabled and selected states

Now delay timing buttons should correctly show which timing is selected on startup.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
master
melancholytron 2 months ago
parent
commit
b2c6ee28e5
  1. 24
      gui/arpeggiator_controls.py

24
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")

Loading…
Cancel
Save