Skip to content

Commit 4ab5742

Browse files
Optmized play effect when selecting out of range in SuraPlayer.
1 parent a453720 commit 4ab5742

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

ui/sura_player_ui/FilterManager.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class FilterManager(QObject):
2727
activeCategoryChanged = pyqtSignal(str)
2828
itemSelectionChanged = pyqtSignal(QComboBox, int)
2929
itemeSelected = pyqtSignal()
30+
selectOutOfRange = pyqtSignal(int)
3031
filteredItemsUpdated = pyqtSignal(QComboBox, list, str)
3132
searchQueryUpdated = pyqtSignal(str)
3233

@@ -66,6 +67,8 @@ def navigate_items(self, direction: int) -> None:
6667
current_index = combo_box.currentIndex()
6768
new_index = max(0, min(combo_box.count() - 1, current_index + direction))
6869
self.itemSelectionChanged.emit(combo_box, new_index)
70+
if current_index + direction in (-1, combo_box.count()):
71+
self.selectOutOfRange.emit(current_index + direction)
6972

7073
def filter_items(self, char: str):
7174
"""Filter items in the active category based on the search query."""

ui/sura_player_ui/sura_player_ui.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ def connect_signals(self):
189189
self.filter_manager.filterModeChanged.connect(self.OnFilterModeChange)
190190
self.filter_manager.activeCategoryChanged.connect(self.OnActiveCategoryChanged)
191191
self.filter_manager.itemSelectionChanged.connect(self.OnItemSelectionChanged)
192+
self.filter_manager.selectOutOfRange.connect(self.OnOutOfRange)
192193
self.filter_manager.filteredItemsUpdated.connect(self.OnFilteredItemsUpdated)
193194
self.filter_manager.itemeSelected.connect(self.play_current_surah)
194195
self.filter_manager.searchQueryUpdated.connect(self.OnSearchQueryUpdated)
@@ -393,12 +394,12 @@ def OnSearchQueryUpdated(self, search_query: str) -> None:
393394
UniversalSpeech.say(search_query)
394395

395396
def OnItemSelectionChanged(self, widget: QComboBox, index: int) -> None:
396-
widget.setCurrentIndex(index)
397-
if widget.currentIndex() == 0 or widget.currentIndex() == widget.count() - 1:
398-
Globals.effects_manager.play("alert")
399-
397+
widget.setCurrentIndex(index)
400398
UniversalSpeech.say(f"{widget.currentText()} {widget.currentIndex() + 1} من {widget.count()}")
401399

400+
def OnOutOfRange(self):
401+
Globals.effects_manager.play("alert")
402+
402403
def OnFilteredItemsUpdated(self, widget: QComboBox, items: List[Item], selected_item_text: str) -> None:
403404
widget.clear()
404405
for item in items:

0 commit comments

Comments
 (0)