modified playlist autoscroll behavior

This commit is contained in:
Martin Wagner 2020-03-29 21:34:51 +02:00
parent be87be9923
commit 75eec86806

View File

@ -1451,7 +1451,7 @@ class PlaylistView(Gtk.Box):
treeview, treeiter=self.selection.get_selected() treeview, treeiter=self.selection.get_selected()
if not treeiter == None: if not treeiter == None:
path=treeview.get_path(treeiter) path=treeview.get_path(treeiter)
self.treeview.scroll_to_cell(path) self.treeview.scroll_to_cell(path, None, True, 0.25)
def refresh_playlist_info(self): def refresh_playlist_info(self):
songs=self.client.playlistinfo() songs=self.client.playlistinfo()
@ -1481,6 +1481,7 @@ class PlaylistView(Gtk.Box):
pass pass
self.store[path][9]=Pango.Weight.BOLD self.store[path][9]=Pango.Weight.BOLD
self.last_song_path=path self.last_song_path=path
self.scroll_to_selected_title()
except: except:
if self.last_song_path != None: if self.last_song_path != None:
self.store[self.last_song_path][9]=Pango.Weight.BOOK self.store[self.last_song_path][9]=Pango.Weight.BOOK
@ -1602,8 +1603,8 @@ class Browser(Gtk.Box):
self.icon_size=self.settings.get_gtk_icon_size("icon-size") self.icon_size=self.settings.get_gtk_icon_size("icon-size")
#widgets #widgets
self.back_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("go-previous-symbolic", self.icon_size)) self.back_to_album_button=Gtk.Button(image=Gtk.Image.new_from_icon_name("go-previous-symbolic", self.icon_size))
self.back_button.set_tooltip_text(_("Back to current album")) self.back_to_album_button.set_tooltip_text(_("Back to current album"))
self.search_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("system-search-symbolic", self.icon_size)) self.search_button=Gtk.ToggleButton(image=Gtk.Image.new_from_icon_name("system-search-symbolic", self.icon_size))
self.search_button.set_tooltip_text(_("Search")) self.search_button.set_tooltip_text(_("Search"))
self.genre_select=GenreSelect(self.client, self.settings, self.emitter) self.genre_select=GenreSelect(self.client, self.settings, self.emitter)
@ -1622,7 +1623,7 @@ class Browser(Gtk.Box):
playlist_frame.add(self.playlist_view) playlist_frame.add(self.playlist_view)
#connect #connect
self.back_button.connect("clicked", self.back) self.back_to_album_button.connect("clicked", self.back_to_album)
self.search_button.connect("toggled", self.on_search_toggled) self.search_button.connect("toggled", self.on_search_toggled)
self.artist_view.connect("artists_changed", self.on_artists_changed) self.artist_view.connect("artists_changed", self.on_artists_changed)
self.settings.connect("changed::alt-layout", self.on_layout_settings_changed) self.settings.connect("changed::alt-layout", self.on_layout_settings_changed)
@ -1632,7 +1633,7 @@ class Browser(Gtk.Box):
#packing #packing
hbox=Gtk.Box(spacing=6) hbox=Gtk.Box(spacing=6)
hbox.set_property("border-width", 6) hbox.set_property("border-width", 6)
hbox.pack_start(self.back_button, False, False, 0) hbox.pack_start(self.back_to_album_button, False, False, 0)
hbox.pack_start(self.search_button, False, False, 0) hbox.pack_start(self.search_button, False, False, 0)
hbox.pack_start(self.genre_select, True, True, 0) hbox.pack_start(self.genre_select, True, True, 0)
@ -1677,7 +1678,7 @@ class Browser(Gtk.Box):
self.playlist_view.clear() self.playlist_view.clear()
self.main_cover.clear() self.main_cover.clear()
def back(self, *args): def back_to_album(self, *args):
try: #since this can still be running when the connection is lost, various exceptions can occur try: #since this can still be running when the connection is lost, various exceptions can occur
song=self.client.currentsong() song=self.client.currentsong()
try: try:
@ -1696,7 +1697,6 @@ class Browser(Gtk.Box):
else: else:
self.artist_view.treeview.set_cursor(Gtk.TreePath(0), None, False) #set cursor to 'all artists' self.artist_view.treeview.set_cursor(Gtk.TreePath(0), None, False) #set cursor to 'all artists'
self.album_view.scroll_to_selected_album() self.album_view.scroll_to_selected_album()
self.playlist_view.scroll_to_selected_title()
except: except:
pass pass
@ -1711,12 +1711,12 @@ class Browser(Gtk.Box):
self.search_win.destroy() self.search_win.destroy()
def on_reconnected(self, *args): def on_reconnected(self, *args):
self.back_button.set_sensitive(True) self.back_to_album_button.set_sensitive(True)
self.search_button.set_sensitive(True) self.search_button.set_sensitive(True)
self.genre_select.set_sensitive(True) self.genre_select.set_sensitive(True)
def on_disconnected(self, *args): def on_disconnected(self, *args):
self.back_button.set_sensitive(False) self.back_to_album_button.set_sensitive(False)
self.search_button.set_active(False) self.search_button.set_active(False)
self.search_button.set_sensitive(False) self.search_button.set_sensitive(False)
self.genre_select.clear() self.genre_select.clear()
@ -2950,7 +2950,7 @@ class MainWindow(Gtk.ApplicationWindow):
self.emitter.emit("options") self.emitter.emit("options")
self.emitter.emit("mixer") self.emitter.emit("mixer")
self.emitter.emit("update") self.emitter.emit("update")
self.browser.back() self.browser.back_to_album()
def on_disconnected(self, *args): def on_disconnected(self, *args):
self.dbus_service.release_name() self.dbus_service.release_name()
@ -2986,7 +2986,7 @@ class MainWindow(Gtk.ApplicationWindow):
self.control.prev_button.grab_focus() self.control.prev_button.grab_focus()
self.control.prev_button.emit("clicked") self.control.prev_button.emit("clicked")
elif event.keyval == 65307: #esc elif event.keyval == 65307: #esc
self.browser.back() self.browser.back_to_album()
elif event.keyval == 65450: #* elif event.keyval == 65450: #*
self.progress.scale.grab_focus() self.progress.scale.grab_focus()
self.progress.seek_forward() self.progress.seek_forward()