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 @@
-
+
+
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,