added tooltips to prev/next buttons indicating number of tracks before/after current track

This commit is contained in:
Martin Wagner 2020-12-18 22:12:50 +01:00
parent 70ca48b7cc
commit 604b17ea3a
1 changed files with 13 additions and 1 deletions

View File

@ -40,7 +40,7 @@ import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
DBusGMainLoop(set_as_default=True)
VERSION="0.9.7" # sync with setup.py
VERSION="0.9.7-dev" # sync with setup.py
COVER_REGEX=r"^\.?(album|cover|folder|front).*\.(gif|jpeg|jpg|png)$"
@ -2998,6 +2998,8 @@ class PlaybackControl(Gtk.ButtonBox):
self._settings.connect("notify::mini-player", self._on_mini_player)
self._settings.connect("changed::show-stop", self._on_show_stop_changed)
self._client.emitter.connect("state", self._on_state)
self._client.emitter.connect("playlist_changed", self._refresh_tooltips)
self._client.emitter.connect("current_song_changed", self._refresh_tooltips)
self._client.emitter.connect("disconnected", self._on_disconnected)
self._client.emitter.connect("reconnected", self._on_reconnected)
@ -3007,6 +3009,14 @@ class PlaybackControl(Gtk.ButtonBox):
self.pack_start(self._stop_button, True, True, 0)
self.pack_start(self._next_button, True, True, 0)
def _refresh_tooltips(self, *args):
songs=self._client.wrapped_call("playlistinfo")
song=int(self._client.wrapped_call("status")["song"])
elapsed=ClientHelper.calc_display_length(songs[:song])
rest=ClientHelper.calc_display_length(songs[song+1:])
self._prev_button.set_tooltip_text(_("{titles} titles ({length})").format(titles=song, length=elapsed))
self._next_button.set_tooltip_text(_("{titles} titles ({length})").format(titles=(len(songs)-(song+1)), length=rest))
def _on_play_clicked(self, widget):
self._client.wrapped_call("toggle_play")
@ -3035,6 +3045,8 @@ class PlaybackControl(Gtk.ButtonBox):
def _on_disconnected(self, *args):
self.set_sensitive(False)
self._prev_button.set_tooltip_text("")
self._next_button.set_tooltip_text("")
def _on_reconnected(self, *args):
self.set_sensitive(True)