reworked 'FocusFrame'

This commit is contained in:
Martin Wagner 2020-03-31 17:36:41 +02:00
parent d94bc2564e
commit 69309a99e7

View File

@ -204,7 +204,7 @@ class IntEntry(Gtk.SpinButton):
self.set_value(value) self.set_value(value)
class FocusFrame(Gtk.Frame): class FocusFrame(Gtk.Frame):
def __init__(self, child): def __init__(self):
Gtk.Frame.__init__(self) Gtk.Frame.__init__(self)
#css #css
@ -219,9 +219,9 @@ class FocusFrame(Gtk.Frame):
self.style_context.add_provider(provider_start, 800) self.style_context.add_provider(provider_start, 800)
#connect def set_widget(self, widget):
child.connect("focus-in-event", self.on_focus_in_event) widget.connect("focus-in-event", self.on_focus_in_event)
child.connect("focus-out-event", self.on_focus_out_event) widget.connect("focus-out-event", self.on_focus_out_event)
def on_focus_in_event(self, *args): def on_focus_in_event(self, *args):
self.style_context.add_provider(self.provider, 800) self.style_context.add_provider(self.provider, 800)
@ -1029,10 +1029,9 @@ class GenreSelect(Gtk.ComboBoxText):
self.client.emitter.emit("update") self.client.emitter.emit("update")
self.client.emitter.handler_unblock(self.update_signal) self.client.emitter.handler_unblock(self.update_signal)
class ArtistView(Gtk.ScrolledWindow): class ArtistView(FocusFrame):
def __init__(self, client, settings, genre_select): def __init__(self, client, settings, genre_select):
Gtk.ScrolledWindow.__init__(self) FocusFrame.__init__(self)
self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
#adding vars #adding vars
self.client=client self.client=client
@ -1068,13 +1067,19 @@ class ArtistView(Gtk.ScrolledWindow):
self.column_name.set_property("resizable", False) self.column_name.set_property("resizable", False)
self.treeview.append_column(self.column_name) self.treeview.append_column(self.column_name)
#scroll
scroll=Gtk.ScrolledWindow()
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scroll.add(self.treeview)
#connect #connect
self.treeview.connect("row-activated", self.on_row_activated) self.treeview.connect("row-activated", self.on_row_activated)
self.settings.connect("changed::use-album-artist", self.refresh) self.settings.connect("changed::use-album-artist", self.refresh)
self.settings.connect("changed::show-initials", self.on_show_initials_settings_changed) self.settings.connect("changed::show-initials", self.on_show_initials_settings_changed)
self.client.emitter.connect("update", self.refresh) self.client.emitter.connect("update", self.refresh)
self.add(self.treeview) self.set_widget(self.treeview)
self.add(scroll)
@GObject.Signal @GObject.Signal
def artists_changed(self): def artists_changed(self):
@ -1307,10 +1312,9 @@ class AlbumIconView(Gtk.IconView):
selected_artist=self.store.get_value(treeiter, 5) selected_artist=self.store.get_value(treeiter, 5)
self.client.album_to_playlist(selected_album, selected_artist, selected_album_year, False, True) self.client.album_to_playlist(selected_album, selected_artist, selected_album_year, False, True)
class AlbumView(Gtk.ScrolledWindow): class AlbumView(FocusFrame):
def __init__(self, client, settings, genre_select, window): def __init__(self, client, settings, genre_select, window):
Gtk.ScrolledWindow.__init__(self) FocusFrame.__init__(self)
self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
#adding vars #adding vars
self.settings=settings self.settings=settings
@ -1321,15 +1325,22 @@ class AlbumView(Gtk.ScrolledWindow):
self.done=True self.done=True
self.pending=[] self.pending=[]
#iconview
self.iconview=AlbumIconView(self.client, self.settings, self.genre_select, self.window) self.iconview=AlbumIconView(self.client, self.settings, self.genre_select, self.window)
#scroll
scroll=Gtk.ScrolledWindow()
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scroll.add(self.iconview)
#connect #connect
self.settings.connect("changed::album-cover", self.on_settings_changed) self.settings.connect("changed::album-cover", self.on_settings_changed)
self.iconview.connect("done", self.on_done) self.iconview.connect("done", self.on_done)
self.client.emitter.connect("update", self.clear) self.client.emitter.connect("update", self.clear)
self.settings.connect("changed::use-album-artist", self.clear) self.settings.connect("changed::use-album-artist", self.clear)
self.add(self.iconview) self.set_widget(self.iconview)
self.add(scroll)
def clear(self, *args): def clear(self, *args):
if self.done: if self.done:
@ -1505,6 +1516,11 @@ class PlaylistView(Gtk.Box):
scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scroll.add(self.treeview) scroll.add(self.treeview)
#frame
frame=FocusFrame()
frame.set_widget(self.treeview)
frame.add(scroll)
#audio infos #audio infos
audio=AudioType(self.client) audio=AudioType(self.client)
@ -1533,7 +1549,7 @@ class PlaylistView(Gtk.Box):
self.settings.connect("changed::column-permutation", self.load_settings) self.settings.connect("changed::column-permutation", self.load_settings)
#packing #packing
self.pack_start(scroll, True, True, 0) self.pack_start(frame, True, True, 0)
self.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0) self.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
self.pack_end(status_bar, False, False, 0) self.pack_end(status_bar, False, False, 0)
@ -1709,16 +1725,10 @@ class Browser(Gtk.Box):
self.search_button.set_tooltip_text(_("Search")) self.search_button.set_tooltip_text(_("Search"))
self.genre_select=GenreSelect(self.client, self.settings) self.genre_select=GenreSelect(self.client, self.settings)
self.artist_view=ArtistView(self.client, self.settings, self.genre_select) self.artist_view=ArtistView(self.client, self.settings, self.genre_select)
artist_frame=FocusFrame(self.artist_view.treeview)
artist_frame.add(self.artist_view)
self.album_view=AlbumView(self.client, self.settings, self.genre_select, self.window) self.album_view=AlbumView(self.client, self.settings, self.genre_select, self.window)
album_frame=FocusFrame(self.album_view.iconview)
album_frame.add(self.album_view)
self.main_cover=MainCover(self.client, self.settings, self.window) self.main_cover=MainCover(self.client, self.settings, self.window)
self.main_cover.set_property("border-width", 3) self.main_cover.set_property("border-width", 3)
self.playlist_view=PlaylistView(self.client, self.settings) self.playlist_view=PlaylistView(self.client, self.settings)
playlist_frame=FocusFrame(self.playlist_view.treeview)
playlist_frame.add(self.playlist_view)
#connect #connect
self.back_to_album_button.connect("clicked", self.back_to_album) self.back_to_album_button.connect("clicked", self.back_to_album)
@ -1738,11 +1748,11 @@ class Browser(Gtk.Box):
self.box1=Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.box1=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.box1.pack_start(hbox, False, False, 0) self.box1.pack_start(hbox, False, False, 0)
self.box1.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0) self.box1.pack_start(Gtk.Separator.new(orientation=Gtk.Orientation.HORIZONTAL), False, False, 0)
self.box1.pack_start(artist_frame, True, True, 0) self.box1.pack_start(self.artist_view, True, True, 0)
self.box2=Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.box2=Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.box2.pack_start(self.main_cover, False, False, 0) self.box2.pack_start(self.main_cover, False, False, 0)
self.box2.pack_start(playlist_frame, True, True, 0) self.box2.pack_start(self.playlist_view, True, True, 0)
self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL) self.paned1=Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
self.paned1.set_wide_handle(True) self.paned1.set_wide_handle(True)
@ -1751,7 +1761,7 @@ class Browser(Gtk.Box):
self.paned2.set_wide_handle(True) self.paned2.set_wide_handle(True)
self.paned1.pack1(self.box1, False, False) self.paned1.pack1(self.box1, False, False)
self.paned1.pack2(album_frame, True, False) self.paned1.pack2(self.album_view, True, False)
self.paned2.pack1(self.paned1, True, False) self.paned2.pack1(self.paned1, True, False)
self.paned2.pack2(self.box2, False, False) self.paned2.pack2(self.box2, False, False)