🐛 | Inform user if loading fails
All checks were successful
SonarQube Code Quality Scan / SonarQube Scan (push) Successful in 1m25s

This commit is contained in:
2026-06-01 21:22:51 +03:00
parent 5f417396ff
commit 31ceb040ed

20
gui.py
View File

@@ -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: