🐛 | Inform user if loading fails
All checks were successful
SonarQube Code Quality Scan / SonarQube Scan (push) Successful in 1m25s
All checks were successful
SonarQube Code Quality Scan / SonarQube Scan (push) Successful in 1m25s
This commit is contained in:
20
gui.py
20
gui.py
@@ -1196,6 +1196,25 @@ class PlaybackBar(QWidget):
|
||||
self._visualizer.set_playing(False)
|
||||
self._visualizer.set_loading(False)
|
||||
|
||||
def show_error(self, message: str) -> None:
|
||||
"""Show a temporary error message in the song info area."""
|
||||
self._np_title.setText("⚠️ " + message)
|
||||
self._np_artist.setText("")
|
||||
self._play_btn.setText("▶")
|
||||
self._progress.setValue(0)
|
||||
self._time_lbl.setText("0:00")
|
||||
self._dur_lbl.setText("0:00")
|
||||
self._duration_ms = 0
|
||||
self._progress.setEnabled(False)
|
||||
self._visualizer.set_playing(False)
|
||||
self._visualizer.set_loading(False)
|
||||
QTimer.singleShot(4000, lambda: self._clear_error())
|
||||
|
||||
def _clear_error(self) -> None:
|
||||
"""Restore the "Not playing" text after an error."""
|
||||
if self._player.is_stopped() and self._player.get_queue_length() == 0:
|
||||
self._np_title.setText(_STYLE_NOT_PLAYING)
|
||||
|
||||
@Slot(str)
|
||||
def _on_state_changed(self, state: str) -> None:
|
||||
if state == "playing":
|
||||
@@ -2693,6 +2712,7 @@ class TunettiWindow(QMainWindow):
|
||||
@Slot(dict)
|
||||
def _on_player_error(self, err: dict) -> None:
|
||||
log.error("Player error: %s", err.get("error", "unknown"))
|
||||
self._playback.show_error(err.get("error", "Playback error"))
|
||||
|
||||
@Slot(int)
|
||||
def _on_player_seeked(self, position_ms: int) -> None:
|
||||
|
||||
Reference in New Issue
Block a user