[gnome-music/wip/jfelder/ctrl-space-selection-fix: 11/11] playertoolbar: Always hide the bar in selection-mode
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/ctrl-space-selection-fix: 11/11] playertoolbar: Always hide the bar in selection-mode
- Date: Mon, 30 Jul 2018 22:00:11 +0000 (UTC)
commit ad6cc8f248d02b89e9dbcb1ff5ed512bb48ada16
Author: rajalakshmi-v15 <raji11997 gmail com>
Date: Mon Jul 30 14:37:46 2018 +0200
playertoolbar: Always hide the bar in selection-mode
PlayerToolbar listens to selection-mode changes. Only display the
player toolbar if not in selection-mode and a song is being
played.
Remove BaseView specific code as it is now handled by PlayerToolbar.
Closes: #197
gnomemusic/views/baseview.py | 5 +----
gnomemusic/widgets/playertoolbar.py | 15 +++++++++++++--
gnomemusic/window.py | 4 ++--
3 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/gnomemusic/views/baseview.py b/gnomemusic/views/baseview.py
index 450df951..1625609b 100644
--- a/gnomemusic/views/baseview.py
+++ b/gnomemusic/views/baseview.py
@@ -146,10 +146,7 @@ class BaseView(Gtk.Stack):
@log
def _on_selection_mode_changed(self, widget, data=None):
- if self.props.selection_mode:
- self.set_player_visible(False)
- else:
- self.set_player_visible(self.player.current_song is not None)
+ if not self.props.selection_mode:
self.unselect_all()
@log
diff --git a/gnomemusic/widgets/playertoolbar.py b/gnomemusic/widgets/playertoolbar.py
index e5de8064..9bfa954d 100644
--- a/gnomemusic/widgets/playertoolbar.py
+++ b/gnomemusic/widgets/playertoolbar.py
@@ -64,9 +64,10 @@ class PlayerToolbar(Gtk.ActionBar):
return '<PlayerToolbar>'
@log
- def __init__(self, player):
+ def __init__(self, player, headerbar):
super().__init__()
+ self._headerbar = headerbar
self._player = player
self._progress_scale.player = self._player.get_gst_player()
@@ -75,6 +76,8 @@ class PlayerToolbar(Gtk.ActionBar):
self._sync_repeat_image()
+ self._headerbar.connect(
+ 'notify::selection-mode', self._on_selection_mode_changed)
self._player.connect('clock-tick', self._on_clock_tick)
self._player.connect('song-changed', self._update_view)
self._player.connect('prev-next-invalidated', self._sync_prev_next)
@@ -114,6 +117,13 @@ class PlayerToolbar(Gtk.ActionBar):
def _on_next_button_clicked(self, button):
self._player.next()
+ @log
+ def _on_selection_mode_changed(self, headerbar, selection_mode):
+ if self._headerbar.props.selection_mode:
+ self.hide()
+ elif self._player.playing:
+ self.show()
+
@log
def _sync_repeat_image(self, player=None):
icon = None
@@ -130,7 +140,8 @@ class PlayerToolbar(Gtk.ActionBar):
@log
def _sync_playing(self, player):
- self.show()
+ if not self._headerbar.props.selection_mode:
+ self.show()
if self._player.get_playback_status() == Playback.PLAYING:
image = self._pause_image
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 270f0593..ee21c18f 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -207,10 +207,10 @@ class Window(Gtk.ApplicationWindow):
@log
def _setup_view(self):
self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
+ self.headerbar = HeaderBar()
self.player = Player(self)
- self.player_toolbar = PlayerToolbar(self.player)
+ self.player_toolbar = PlayerToolbar(self.player, self.headerbar)
self.selection_toolbar = SelectionToolbar()
- self.headerbar = HeaderBar()
self.views = [None] * len(View)
self._stack = Gtk.Stack(
transition_type=Gtk.StackTransitionType.CROSSFADE,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]