Skip to content

Commit 39c8f3b

Browse files
Fixed a bug related to setting current item after cleaning filter.
1 parent 1aecf02 commit 39c8f3b

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

ui/sura_player_ui/FilterManager.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Category:
1818
label: str
1919
items: List[Item]
2020
widget : QComboBox
21+
selected_item_text: str = ""
2122

2223

2324
class FilterManager(QObject):
@@ -26,6 +27,7 @@ class FilterManager(QObject):
2627
itemSelectionChanged = pyqtSignal(QComboBox, int)
2728
itemeSelected = pyqtSignal()
2829
filteredItemsUpdated = pyqtSignal(QComboBox, list)
30+
filterCleaned = pyqtSignal(QComboBox, str)
2931
searchQueryUpdated = pyqtSignal(str)
3032

3133
def __init__(self):
@@ -43,7 +45,7 @@ def change_category_items(self, id: int, new_items: List[Item]) -> None:
4345
for category in self.categories:
4446
if category.id == id:
4547
category.items = new_items
46-
48+
4749
def toggle_filter_mode(self) -> None:
4850
"""Toggle filter mode."""
4951
self.active = not self.active
@@ -66,6 +68,7 @@ def navigate_items(self, direction: int) -> None:
6668
current_index = combo_box.currentIndex()
6769
new_index = max(0, min(combo_box.count() - 1, current_index + direction))
6870
self.itemSelectionChanged.emit(combo_box, new_index)
71+
active_category.selected_item_text = combo_box.currentText()
6972

7073
def filter_items(self, char: str):
7174
"""Filter items in the active category based on the search query."""
@@ -94,14 +97,14 @@ def clear_filters(self):
9497
for category in self.categories:
9598
combo_box = category.widget
9699
self.filteredItemsUpdated.emit(combo_box, category.items)
100+
self.filterCleaned.emit(combo_box, category.selected_item_text)
97101

98102
def handle_key_press(self, event: QKeyEvent) -> bool:
99103
"""Handle key press events."""
100104
if event.modifiers() == Qt.ControlModifier and event.key() == Qt.Key_F:
101105
self.toggle_filter_mode()
102106
return True
103107
elif self.active:
104-
print(event.key() == Qt.Key.Key_Up)
105108
if event.key() == Qt.Key.Key_Left:
106109
self.switch_category(-1)
107110
return True
@@ -132,6 +135,7 @@ def handle_key_press(self, event: QKeyEvent) -> bool:
132135
elif event.key() in (Qt.Key.Key_Return, Qt.Key.Key_Enter):
133136
self.itemeSelected.emit()
134137
self.toggle_filter_mode()
138+
return True
135139
elif event.key() == Qt.Key.Key_Escape:
136140
self.toggle_filter_mode()
137141
return True

ui/sura_player_ui/sura_player_ui.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ def connect_signals(self):
159159
self.filter_manager.activeCategoryChanged.connect(self.OnActiveCategoryChanged)
160160
self.filter_manager.itemSelectionChanged.connect(self.OnItemSelectionChanged)
161161
self.filter_manager.filteredItemsUpdated.connect(self.OnFilteredItemsUpdated)
162+
self.filter_manager.filterCleaned.connect(self.OnFilterCleaned)
162163
self.filter_manager.itemeSelected.connect(self.play_current_surah)
163164
self.filter_manager.searchQueryUpdated.connect(self.OnSearchQueryUpdated)
164165

@@ -326,12 +327,12 @@ def OnItemSelectionChanged(self, widget: QComboBox, index: int) -> None:
326327
UniversalSpeech.say(widget.currentText())
327328

328329
def OnFilteredItemsUpdated(self, widget: QComboBox, items: List[Item]) -> None:
329-
current_item = widget.currentText()
330330
widget.clear()
331331
for item in items:
332332
widget.addItem(item.text, item.id)
333333

334-
widget.setCurrentText(current_item)
334+
def OnFilterCleaned(self, widget: QComboBox, selected_item_text: str) -> None:
335+
widget.setCurrentText(selected_item_text)
335336

336337
def keyPressEvent(self, event: QKeyEvent):
337338

0 commit comments

Comments
 (0)