From 31ceb040ed78b464013bc777ec22e89587ca9147 Mon Sep 17 00:00:00 2001 From: NikkeDoy Date: Mon, 1 Jun 2026 21:22:51 +0300 Subject: [PATCH] :bug: | Inform user if loading fails --- gui.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gui.py b/gui.py index 334a24e..ac81bf5 100644 --- a/gui.py +++ b/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: