Skip to content

Commit f883202

Browse files
Added shortcuts for the time in SuraPlayer.
1 parent 774503a commit f883202

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

ui/sura_player_ui/sura_player_ui.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import re
22
import os
3+
import datetime
34
from typing import List
45
import qtawesome as qta
56
from PyQt6.QtCore import Qt
@@ -137,9 +138,11 @@ def create_progress_group(self):
137138

138139
self.elapsed_time_label = QLabel("0:00")
139140
self.remaining_time_label = QLabel("0:00")
141+
self.total_time = QLabel("0:00")
140142
time_layout = QHBoxLayout()
141143
time_layout.addWidget(self.elapsed_time_label)
142144
time_layout.addWidget(self.remaining_time_label)
145+
time_layout.addWidget(self.total_time)
143146

144147
progress_layout.addWidget(self.time_slider)
145148
progress_layout.addWidget(QLabel("الصوت:"))
@@ -206,9 +209,19 @@ def setup_shortcuts(self, disable=False, first_time=True):
206209
for widget, key_sequence in shortcuts.items():
207210
widget.setShortcut(QKeySequence(key_sequence))
208211

212+
shortcuts = {
213+
"Ctrl+Down": self.next_reciter,
214+
"Ctrl+Up": self.previous_reciter,
215+
"E": lambda: UniversalSpeech.say(self.elapsed_time_label.text()),
216+
"R": lambda: UniversalSpeech.say(self.remaining_time_label.text()),
217+
"T": lambda: UniversalSpeech.say(self.total_time.text()),
218+
"C": lambda: UniversalSpeech.say(self.reciter_combo.currentText()),
219+
"V": lambda: UniversalSpeech.say(self.surah_combo.currentText()),
220+
}
221+
209222
if first_time:
210-
QShortcut(QKeySequence("Ctrl+Down"), self).activated.connect(self.next_reciter)
211-
QShortcut(QKeySequence("Ctrl+Up"), self).activated.connect(self.previous_reciter)
223+
for key_sequence, function in shortcuts.items():
224+
QShortcut(QKeySequence(key_sequence), self).activated.connect(function)
212225

213226
def update_current_reciter(self):
214227
reciter_id = self.reciter_combo.currentData()
@@ -246,7 +259,7 @@ def play_current_surah(self):
246259
self.audio_player_thread.start()
247260
self.preferences_manager.set_preference("reciter_id", self.reciter_combo.currentData())
248261
self.preferences_manager.set_preference("sura_number", self.surah_combo.currentData())
249-
262+
250263
def stop(self):
251264
self.player.stop()
252265

@@ -303,12 +316,12 @@ def on_update_time(self, position, length):
303316
self.time_slider.setValue(new_position_percentage)
304317
self.elapsed_time_label.setText(self.format_time(position))
305318
self.remaining_time_label.setText(self.format_time(length - position))
319+
self.total_time.setText(self.format_time(self.player.get_length()))
306320
self.time_slider.blockSignals(False)
307321

308322
def format_time(self, seconds):
309-
minutes = int(seconds // 60)
310-
seconds = int(seconds % 60)
311-
return f"{minutes}:{seconds:02}"
323+
time_delta = datetime.timedelta(seconds=seconds)
324+
return str(time_delta).split(".")[0]
312325

313326
def update_buttons_status(self, status):
314327
controls = self.buttons + self.menubar.get_player_actions() + [self.time_slider]

0 commit comments

Comments
 (0)