Skip to content

Commit d5a2380

Browse files
Linked the shortcuts with menu item in SuraPlayer.
1 parent 26e0d72 commit d5a2380

File tree

2 files changed

+40
-26
lines changed

2 files changed

+40
-26
lines changed

ui/sura_player_ui/menubar.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from PyQt6.QtWidgets import QMenuBar, QApplication
2-
from PyQt6.QtGui import QAction, QKeyEvent
2+
from PyQt6.QtGui import QAction, QKeyEvent, QKeySequence
33
from PyQt6.QtCore import Qt, QEvent
44

55

@@ -14,26 +14,30 @@ def __init__(self, parent=None):
1414
player_menu = self.addMenu("مشغل القرآن(&P)")
1515

1616
# Create Actions for Player Menu
17-
play_action = QAction("تشغيل", self) # "Play"
18-
stop_action = QAction("إيقاف", self) # "Stop"
19-
forward_action = QAction("تقديم", self) # "Forward"
20-
rewind_action = QAction("إرجاع", self) # "Rewind"
17+
self.play_action = QAction("تشغيل", self) # "Play"
18+
self.stop_action = QAction("إيقاف", self) # "Stop"
19+
self.forward_action = QAction("تقديم", self) # "Forward"
20+
self.rewind_action = QAction("إرجاع", self) # "Rewind"
21+
self.up_volume_action = QAction("رفع الصوت", self)
22+
self.down_volume_action = QAction("خفض الصوت", self)
2123

2224
# Add Actions to Menu
23-
player_menu.addAction(play_action)
24-
player_menu.addAction(stop_action)
25-
player_menu.addAction(forward_action)
26-
player_menu.addAction(rewind_action)
27-
25+
player_menu.addAction(self.play_action)
26+
player_menu.addAction(self.stop_action)
27+
player_menu.addAction(self.forward_action)
28+
player_menu.addAction(self.rewind_action)
29+
player_menu.addAction(self.up_volume_action)
30+
player_menu.addAction(self.down_volume_action)
31+
2832
# Create Actions for Main Menu
29-
close_window_action = QAction("إغلاق النافذة", self)
30-
close_window_action .triggered.connect(self.parent.OnClose)
31-
close_program_action = QAction("إغلاق البرنامج", self)
32-
close_program_action.triggered.connect(QApplication.exit)
33+
self.close_window_action = QAction("إغلاق النافذة", self)
34+
self.close_window_action .triggered.connect(self.parent.OnClose)
35+
self.close_program_action = QAction("إغلاق البرنامج", self)
36+
self.close_program_action.triggered.connect(QApplication.exit)
3337

3438
# Add Actions to Menu
35-
main_menu.addAction(close_window_action)
36-
main_menu.addAction(close_program_action)
39+
main_menu.addAction(self.close_window_action)
40+
main_menu.addAction(self.close_program_action)
3741
self.installEventFilter(self)
3842

3943
def eventFilter(self, obj, event: QEvent):

ui/sura_player_ui/sura_player_ui.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def __init__(self, parent=None) -> None:
2525
self.setWindowTitle("مشغل القرآن")
2626
self.resize(600, 400)
2727
self.preferences_manager = PreferencesManager(user_db_path)
28+
self.menubar = MenuBar(self)
29+
self.setMenuBar(self.menubar)
2830

2931
self.reciters = SurahReciter(data_folder / "quran" / "reciters.db")
3032
self.player = SurahPlayer()
@@ -44,7 +46,6 @@ def __init__(self, parent=None) -> None:
4446
self.connect_signals()
4547
self.disable_focus()
4648
self.setup_shortcuts()
47-
self.setMenuBar(MenuBar(self))
4849
self.setFocus()
4950

5051
layout.addWidget(self.selection_group)
@@ -150,11 +151,17 @@ def connect_signals(self):
150151
self.reciter_combo.currentIndexChanged.connect(self.update_current_reciter)
151152
self.surah_combo.currentIndexChanged.connect(self.update_current_surah)
152153
self.play_pause_button.clicked.connect(self.toggle_play_pause)
154+
self.menubar.play_action.triggered.connect(self.toggle_play_pause)
153155
self.stop_button.clicked.connect(self.stop)
156+
self.menubar.stop_action.triggered.connect(self.stop)
154157
self.forward_button.clicked.connect(self.forward)
158+
self.menubar.forward_action.triggered.connect(self.forward)
155159
self.rewind_button.clicked.connect(self.rewind)
160+
self.menubar.rewind_action.triggered.connect(self.rewind)
156161
self.volume_up_button.clicked.connect(lambda: self.player.increase_volume())
162+
self.menubar.up_volume_action.triggered.connect(lambda: self.player.increase_volume())
157163
self.volume_down_button.clicked.connect(lambda: self.player.decrease_volume())
164+
self.menubar.down_volume_action.triggered.connect(lambda: self.player.decrease_volume())
158165
self.next_surah_button.clicked.connect(self.next_surah)
159166
self.previous_surah_button.clicked.connect(self.previous_surah)
160167
self.close_button.clicked.connect(self.OnClose)
@@ -186,19 +193,19 @@ def disable_focus(self):
186193
def setup_shortcuts(self, disable=False, first_time=True):
187194

188195
shortcuts = {
189-
self.play_pause_button: "Space",
190-
self.forward_button: "Right",
191-
self.rewind_button: "Left",
192-
self.volume_up_button: "Up",
193-
self.volume_down_button: "Down",
194-
self.stop_button: "S",
196+
self.menubar.play_action: "Space",
197+
self.menubar.forward_action: "Right",
198+
self.menubar.rewind_action: "Left",
199+
self.menubar.up_volume_action: "Up",
200+
self.menubar.down_volume_action: "Down",
201+
self.menubar.stop_action: "S",
195202
self.close_button: "Ctrl+Q",
196203
self.next_surah_button: "Ctrl+Right",
197204
self.previous_surah_button: "Ctrl+Left",
198205
}
199206

200207
for button, key_sequence in shortcuts.items():
201-
button.setShortcut(QKeySequence(key_sequence) if not disable else None)
208+
button.setShortcut(QKeySequence(key_sequence))
202209

203210
if first_time:
204211
QShortcut(QKeySequence("Ctrl+Down"), self).activated.connect(self.next_reciter)
@@ -326,8 +333,11 @@ def update_ui_status(self):
326333
self.statusBar().showMessage("إيقاف مؤقت")
327334

328335
def OnFilterModeChange(self, active: bool) -> None:
329-
for button in self.buttons:
330-
button.setEnabled(not active)
336+
widgets = self.buttons + [self.menubar.play_action, self.menubar.forward_action,
337+
self.menubar.rewind_action, self.menubar.stop_action,
338+
self.menubar.up_volume_action, self.menubar.down_volume_action]
339+
for widget in widgets:
340+
widget.setEnabled(not active)
331341
UniversalSpeech.say("وضع الفلترة مفعَّل. استخدم الأسهم اليمين و اليسار للتنقل بين القرائ و السور, واستخدم الأسهم للأعلى والأسفل لتصفح المحدد, اكتب لتصفية القُرَّاء." if active else "وضع الفلترة معطَّل.")
332342

333343
def OnActiveCategoryChanged(self, label: str) -> None:

0 commit comments

Comments
 (0)