diff --git a/bin/mpdevil b/bin/mpdevil index 45afdc7..3d1c1cd 100755 --- a/bin/mpdevil +++ b/bin/mpdevil @@ -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)