1919from utils .user_data import PreferencesManager
2020from utils .settings import SettingsManager
2121from .menubar import MenuBar
22+ from .key_handler import KeyHandler
2223
2324
2425class SuraPlayerWindow (QMainWindow ):
@@ -34,8 +35,7 @@ def __init__(self, parent=None) -> None:
3435 self .player = SurahPlayer ()
3536 self .audio_player_thread = AudioPlayerThread (self .player , self )
3637 self .filter_manager = FilterManager ()
37- self .filter_mode = False
38- self .search_text = ""
38+ self .key_handler = KeyHandler (self )
3939
4040 central_widget = QWidget ()
4141 layout = QVBoxLayout (central_widget )
@@ -415,61 +415,7 @@ def keyPressEvent(self, event: QKeyEvent):
415415 if self .filter_manager .handle_key_press (event ):
416416 return
417417
418- if event .key () == Qt .Key_Left :
419- if event .modifiers () & (Qt .ControlModifier | Qt .ShiftModifier ):
420- self .rewind (60 )
421- elif event .modifiers () & Qt .ShiftModifier :
422- self .rewind (10 )
423- elif event .modifiers () & Qt .ControlModifier :
424- self .rewind (20 )
425-
426- elif event .key () == Qt .Key_Right :
427- if event .modifiers () & (Qt .ControlModifier | Qt .ShiftModifier ):
428- self .forward (60 )
429- elif event .modifiers () & Qt .ShiftModifier :
430- self .forward (10 )
431- elif event .modifiers () & Qt .ControlModifier :
432- self .forward (20 )
433-
434- else :
435- super ().keyPressEvent (event )
436-
437-
438-
439-
440-
441- if event .modifiers () & (Qt .ControlModifier | Qt .ShiftModifier | Qt .AltModifier ):
442- return
443-
444- shortcuts = {
445- ord ("E" ): lambda : UniversalSpeech .say (self .elapsed_time_label .text ()),
446- ord ("R" ): lambda : UniversalSpeech .say (self .remaining_time_label .text ()),
447- ord ("T" ): lambda : UniversalSpeech .say (self .total_time .text ()),
448- ord ("C" ): lambda : UniversalSpeech .say (self .reciter_combo .currentText ()),
449- ord ("V" ): lambda : UniversalSpeech .say (self .surah_combo .currentText ()),
450- ord ("I" ): lambda : UniversalSpeech .say (F"{ self .surah_combo .currentText ()} , { self .reciter_combo .currentText ()} " ),
451- Qt .Key .Key_1 : lambda : self .set_position (10 , by_percent = True ),
452- Qt .Key .Key_2 : lambda : self .set_position (20 , by_percent = True ),
453- Qt .Key .Key_3 : lambda : self .set_position (30 , by_percent = True ),
454- Qt .Key .Key_4 : lambda : self .set_position (40 , by_percent = True ),
455- Qt .Key .Key_5 : lambda : self .set_position (50 , by_percent = True ),
456- Qt .Key .Key_6 : lambda : self .set_position (60 , by_percent = True ),
457- Qt .Key .Key_7 : lambda : self .set_position (70 , by_percent = True ),
458- Qt .Key .Key_8 : lambda : self .set_position (80 , by_percent = True ),
459- Qt .Key .Key_9 : lambda : self .set_position (90 , by_percent = True ),
460- Qt .Key .Key_0 : lambda : self .set_position (0 , by_percent = True ),
461- Qt .Key_MediaTogglePlayPause : lambda : self .toggle_play_pause (),
462- Qt .Key_MediaStop : lambda : self .stop (),
463- Qt .Key_MediaPrevious : lambda : self .previous_surah (),
464- Qt .Key_MediaNext : lambda : self .next_surah (),
465- }
466-
467- key_native = event .nativeVirtualKey ()
468- if key_native in shortcuts :
469- shortcuts [key_native ]()
470- return
471- elif event .key () in shortcuts :
472- shortcuts [event .key ()]()
418+ if self .key_handler .handle_key_press (event ):
473419 return
474420
475421 return super ().keyPressEvent (event )
0 commit comments