|
19 | 19 | QVBoxLayout, |
20 | 20 | ) |
21 | 21 |
|
| 22 | +from cuepoint.ui.widgets.styles import Colors |
| 23 | + |
22 | 24 | _SETTINGS_GROUP = "SyncWithRekordbox" |
23 | 25 | _KEY_FORMAT = "key_format" |
24 | 26 | _WRITE_KEY = "write_key" |
@@ -101,16 +103,19 @@ class SyncTagsDialog(QDialog): |
101 | 103 |
|
102 | 104 | def __init__(self, parent=None): |
103 | 105 | super().__init__(parent) |
| 106 | + self.setObjectName("syncTagsDialog") |
104 | 107 | self.setWindowTitle("Sync with Rekordbox") |
105 | 108 | self._saved = _load_saved_options() |
106 | 109 | self._options: SyncOptions | None = None |
107 | 110 | self._init_ui() |
| 111 | + self._apply_key_format_style() |
108 | 112 |
|
109 | 113 | def _init_ui(self) -> None: |
110 | 114 | layout = QVBoxLayout(self) |
111 | 115 | layout.setSpacing(12) |
112 | 116 |
|
113 | 117 | key_group = QGroupBox("Key format") |
| 118 | + key_group.setObjectName("keyFormatGroup") |
114 | 119 | key_layout = QVBoxLayout(key_group) |
115 | 120 | self._normal_rb = QRadioButton("Normal (e.g. A Minor, G Major)") |
116 | 121 | self._camelot_rb = QRadioButton("Camelot (e.g. 8A, 12B)") |
@@ -162,6 +167,25 @@ def _init_ui(self) -> None: |
162 | 167 | btn.rejected.connect(self.reject) |
163 | 168 | layout.addWidget(btn) |
164 | 169 |
|
| 170 | + def _apply_key_format_style(self) -> None: |
| 171 | + """Make the selected key format radio button clearly visible (background + border).""" |
| 172 | + self.setStyleSheet( |
| 173 | + f""" |
| 174 | + QDialog#syncTagsDialog QGroupBox#keyFormatGroup QRadioButton {{ |
| 175 | + padding: 6px 10px; |
| 176 | + border-radius: 4px; |
| 177 | + border: 1px solid transparent; |
| 178 | + }} |
| 179 | + QDialog#syncTagsDialog QGroupBox#keyFormatGroup QRadioButton:checked {{ |
| 180 | + background-color: {Colors.SURFACE}; |
| 181 | + color: {Colors.TEXT_PRIMARY}; |
| 182 | + border: 1px solid {Colors.BORDER}; |
| 183 | + border-left: 3px solid {Colors.PRIMARY}; |
| 184 | + font-weight: bold; |
| 185 | + }} |
| 186 | + """ |
| 187 | + ) |
| 188 | + |
165 | 189 | def _on_accept(self) -> None: |
166 | 190 | key_format = "camelot" if self._camelot_rb.isChecked() else ("short" if self._short_rb.isChecked() else "normal") |
167 | 191 | comment_text = (self._comment_edit.text() or "").strip() or "ok" |
|
0 commit comments