mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
fixed 'back_to_song_button'
This commit is contained in:
parent
a88e1c67dc
commit
199e0223b2
|
@ -2285,7 +2285,7 @@ class PlaylistWindow(Gtk.Box):
|
||||||
self._treeview.connect("row-activated", self._on_row_activated)
|
self._treeview.connect("row-activated", self._on_row_activated)
|
||||||
self._key_press_event=self._treeview.connect("key-press-event", self._on_key_press_event)
|
self._key_press_event=self._treeview.connect("key-press-event", self._on_key_press_event)
|
||||||
self._treeview.connect("button-press-event", self._on_button_press_event)
|
self._treeview.connect("button-press-event", self._on_button_press_event)
|
||||||
self._back_to_song_button.connect("clicked", self.scroll_to_selected_title)
|
self._back_to_song_button.connect("clicked", self._on_back_to_song_button_clicked)
|
||||||
self._clear_button.connect("clicked", self._on_clear_button_clicked)
|
self._clear_button.connect("clicked", self._on_clear_button_clicked)
|
||||||
|
|
||||||
self._client.emitter.connect("playlist_changed", self._on_playlist_changed)
|
self._client.emitter.connect("playlist_changed", self._on_playlist_changed)
|
||||||
|
@ -2306,12 +2306,6 @@ class PlaylistWindow(Gtk.Box):
|
||||||
self._store.clear()
|
self._store.clear()
|
||||||
self._playlist_version=None
|
self._playlist_version=None
|
||||||
|
|
||||||
def scroll_to_selected_title(self, *args):
|
|
||||||
treeview, treeiter=self._selection.get_selected()
|
|
||||||
if treeiter is not None:
|
|
||||||
path=treeview.get_path(treeiter)
|
|
||||||
self._treeview.scroll_to_cell(path, None, True, 0.25)
|
|
||||||
|
|
||||||
def save_settings(self): # only saves the column sizes
|
def save_settings(self): # only saves the column sizes
|
||||||
columns=self._treeview.get_columns()
|
columns=self._treeview.get_columns()
|
||||||
permutation=self._settings.get_value("column-permutation").unpack()
|
permutation=self._settings.get_value("column-permutation").unpack()
|
||||||
|
@ -2340,7 +2334,13 @@ class PlaylistWindow(Gtk.Box):
|
||||||
whole_length_human_readable=ClientHelper.calc_display_length(songs)
|
whole_length_human_readable=ClientHelper.calc_display_length(songs)
|
||||||
self._playlist_info.set_text(_("%(total_tracks)i titles (%(total_length)s)") % {"total_tracks": len(songs), "total_length": whole_length_human_readable})
|
self._playlist_info.set_text(_("%(total_tracks)i titles (%(total_length)s)") % {"total_tracks": len(songs), "total_length": whole_length_human_readable})
|
||||||
|
|
||||||
def _refresh_selection(self, scroll=True): # Gtk.TreePath(len(self._store) is used to generate an invalid TreePath (needed to unset cursor)
|
def _scroll_to_selected_title(self, *args):
|
||||||
|
treeview, treeiter=self._selection.get_selected()
|
||||||
|
if treeiter is not None:
|
||||||
|
path=treeview.get_path(treeiter)
|
||||||
|
self._treeview.scroll_to_cell(path, None, True, 0.25)
|
||||||
|
|
||||||
|
def _refresh_selection(self): # Gtk.TreePath(len(self._store) is used to generate an invalid TreePath (needed to unset cursor)
|
||||||
self._treeview.set_cursor(Gtk.TreePath(len(self._store)), None, False)
|
self._treeview.set_cursor(Gtk.TreePath(len(self._store)), None, False)
|
||||||
for row in self._store: # reset bold text
|
for row in self._store: # reset bold text
|
||||||
row[9]=Pango.Weight.BOOK
|
row[9]=Pango.Weight.BOOK
|
||||||
|
@ -2349,8 +2349,6 @@ class PlaylistWindow(Gtk.Box):
|
||||||
path=Gtk.TreePath(int(song))
|
path=Gtk.TreePath(int(song))
|
||||||
self._selection.select_path(path)
|
self._selection.select_path(path)
|
||||||
self._store[path][9]=Pango.Weight.BOLD
|
self._store[path][9]=Pango.Weight.BOLD
|
||||||
if scroll:
|
|
||||||
self.scroll_to_selected_title()
|
|
||||||
except:
|
except:
|
||||||
self._selection.unselect_all()
|
self._selection.unselect_all()
|
||||||
|
|
||||||
|
@ -2417,15 +2415,22 @@ class PlaylistWindow(Gtk.Box):
|
||||||
treeiter=self._store.get_iter(i)
|
treeiter=self._store.get_iter(i)
|
||||||
self._store.remove(treeiter)
|
self._store.remove(treeiter)
|
||||||
self._refresh_playlist_info()
|
self._refresh_playlist_info()
|
||||||
if self._playlist_version is None or songs != []:
|
if songs != []:
|
||||||
self._refresh_selection()
|
self._refresh_selection()
|
||||||
|
self._scroll_to_selected_title()
|
||||||
self._playlist_version=version
|
self._playlist_version=version
|
||||||
|
|
||||||
def _on_song_changed(self, *args):
|
def _on_song_changed(self, *args):
|
||||||
if self._client.wrapped_call("status")["state"] == "play":
|
|
||||||
self._refresh_selection()
|
self._refresh_selection()
|
||||||
else:
|
if self._client.wrapped_call("status")["state"] == "play":
|
||||||
self._refresh_selection(False)
|
self._scroll_to_selected_title()
|
||||||
|
|
||||||
|
def _on_back_to_song_button_clicked(self, *args):
|
||||||
|
for path, row in enumerate(self._store):
|
||||||
|
if row[9] == Pango.Weight.BOLD:
|
||||||
|
self._selection.select_path(path)
|
||||||
|
break
|
||||||
|
self._scroll_to_selected_title()
|
||||||
|
|
||||||
def _on_clear_button_clicked(self, *args):
|
def _on_clear_button_clicked(self, *args):
|
||||||
self._client.clear()
|
self._client.clear()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user