use right toolbar to show panel-specific toolbar and migrate toolbar of playlist panel
This commit is contained in:
parent
73e35821ed
commit
c9f01de84b
2 changed files with 133 additions and 62 deletions
129
data/gtk.glade
129
data/gtk.glade
|
|
@ -332,47 +332,17 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="playlist-panel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkToolbar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="playlist-clear">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="icon_name">edit-clear</property>
|
||||
<signal name="clicked" handler="on_playlist-clear_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<style>
|
||||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<object class="GtkScrolledWindow" id="playlist-panel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkIconView" id="playlist-iconview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="margin">0</property>
|
||||
<property name="margin">6</property>
|
||||
<property name="item_orientation">horizontal</property>
|
||||
<property name="columns">3</property>
|
||||
<property name="row_spacing">0</property>
|
||||
|
|
@ -388,17 +358,10 @@
|
|||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">playlist</property>
|
||||
<property name="title" translatable="yes">Playlist</property>
|
||||
<property name="position">2</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
|
@ -579,7 +542,7 @@
|
|||
<packing>
|
||||
<property name="name">library</property>
|
||||
<property name="title" translatable="yes">Library</property>
|
||||
<property name="position">3</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
|
@ -756,14 +719,92 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar">
|
||||
<object class="GtkStack" id="toolbarstack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="server-toolbar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
<style>
|
||||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">server</property>
|
||||
<property name="title" translatable="yes">Server</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="cover-toolbar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<style>
|
||||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">cover</property>
|
||||
<property name="title" translatable="yes">Cover</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="playlist-toolbar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="playlist-toolbar-clear">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="icon_name">edit-clear</property>
|
||||
<signal name="clicked" handler="on_playlist-toolbar-clear_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<style>
|
||||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">playlist</property>
|
||||
<property name="title" translatable="yes">Playlist</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="library-toolbar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
<child>
|
||||
<object class="GtkToolButton" id="library-toolbar-update">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="stock_id">gtk-refresh</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<style>
|
||||
<class name="no-bg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">library</property>
|
||||
<property name="title" translatable="yes">Library</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue