From c9f01de84b5850a0da0c4e873e620bd49d3a479e Mon Sep 17 00:00:00 2001 From: coderkun Date: Sat, 4 Jun 2016 14:11:42 +0200 Subject: [PATCH] use right toolbar to show panel-specific toolbar and migrate toolbar of playlist panel --- data/gtk.glade | 161 +++++++++++++++++++++++++++++++------------------ mcg/mcgGtk.py | 34 ++++++++++- 2 files changed, 133 insertions(+), 62 deletions(-) diff --git a/data/gtk.glade b/data/gtk.glade index 032f24a..d366e74 100644 --- a/data/gtk.glade +++ b/data/gtk.glade @@ -332,73 +332,36 @@ - + + + + True - False - vertical + True - - True - False - False - - - True - False - True - edit-clear - - - - False - True - - - - - - False - True - 0 - - - - + True True - - - True - True - 0 - horizontal - 3 - 0 - 0 - 1 - 5 - - - + 6 + horizontal + 3 + 0 + 0 + 1 + 5 - - True - True - 1 - + playlist Playlist - 2 + 3 @@ -579,7 +542,7 @@ library Library - 3 + 4 @@ -756,13 +719,91 @@ - + True False - False - + + + True + False + + + + server + Server + + + + + True + False + + + + cover + Cover + 1 + + + + + True + False + False + + + True + False + True + edit-clear + + + + False + True + + + + + + playlist + Playlist + 2 + + + + + True + False + False + + + True + False + True + gtk-refresh + + + False + True + + + + + + library + Library + 3 + + end diff --git a/mcg/mcgGtk.py b/mcg/mcgGtk.py index 0084c19..e6e1927 100755 --- a/mcg/mcgGtk.py +++ b/mcg/mcgGtk.py @@ -151,6 +151,8 @@ class Window(): self._stack = builder.get_object('panelstack') # Header self._header_bar = HeaderBar(builder) + # Toolbar stack + self._toolbar_stack = builder.get_object('toolbarstack') # Properties self._header_bar.set_sensitive(False, False) @@ -233,6 +235,7 @@ class Window(): # HeaderBar callbacks def on_header_bar_stack_switched(self, widget): + self._set_visible_toolbar() self._save_visible_panel() @@ -418,6 +421,13 @@ class Window(): self._settings.set_int(Application.SETTING_PANEL, panel_index_selected) + def _set_visible_toolbar(self): + panels = [panel.get() for panel in self._panels] + panel_index_selected = panels.index(self._stack.get_visible_child()) + toolbar = self._panels[panel_index_selected].get_toolbar() + self._toolbar_stack.set_visible_child(toolbar) + + def _show_error(self, message): self._infobar.show_error(message) @@ -605,6 +615,7 @@ class ConnectionPanel(mcg.Base): # Widgets self._panel = builder.get_object('server-panel') + self._toolbar = builder.get_object('server-toolbar') # Zeroconf self._zeroconf_list = builder.get_object('server-zeroconf-list') self._zeroconf_list.set_model(self._services) @@ -629,6 +640,10 @@ class ConnectionPanel(mcg.Base): return self._panel + def get_toolbar(self): + return self._toolbar + + def get_signal_handlers(self): return { 'on_server-zeroconf-list-selection_changed': self.on_service_selected, @@ -731,6 +746,7 @@ class CoverPanel(mcg.Base): # Widgets self._panel = builder.get_object('cover-panel') + self._toolbar = builder.get_object('cover-toolbar') # Cover self._cover_scroll = builder.get_object('cover-scroll') self._cover_image = builder.get_object('cover-image') @@ -747,6 +763,10 @@ class CoverPanel(mcg.Base): return self._panel + def get_toolbar(self): + return self._toolbar + + def get_signal_handlers(self): return { 'on_cover-box_button_press_event': self.on_cover_box_pressed, @@ -949,8 +969,9 @@ class PlaylistPanel(mcg.Base): # Widgets self._panel = builder.get_object('playlist-panel') + self._toolbar = builder.get_object('playlist-toolbar') # Clear button - self._playlist_clear_button = builder.get_object('playlist-clear') + self._playlist_clear_button = builder.get_object('playlist-toolbar-clear') # Playlist Grid: Model self._playlist_grid_model = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str) # Playlist Grid @@ -965,9 +986,13 @@ class PlaylistPanel(mcg.Base): return self._panel + def get_toolbar(self): + return self._toolbar + + def get_signal_handlers(self): return { - 'on_playlist-clear_clicked': self._callback_from_widget + 'on_playlist-toolbar-clear_clicked': self._callback_from_widget } @@ -1068,6 +1093,7 @@ class LibraryPanel(mcg.Base): # Widgets self._panel = builder.get_object('library-panel') + self._toolbar = builder.get_object('library-toolbar') # Progress Bar self._progress_revealer = builder.get_object('library-progress-revealer') self._progress_bar = builder.get_object('library-progress') @@ -1109,6 +1135,10 @@ class LibraryPanel(mcg.Base): return self._panel + def get_toolbar(self): + return self._toolbar + + def get_signal_handlers(self): return { 'on_library-update_clicked': self.on_update_clicked,