[gnome-music/gnome-3-12] Dont update in selection mode
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/gnome-3-12] Dont update in selection mode
- Date: Mon, 26 May 2014 09:42:49 +0000 (UTC)
commit e357c1fcda9ed1404137f1f941a63c50767250cc
Author: Sai Suman Prayaga <suman sai14 gmail com>
Date: Thu May 22 22:27:58 2014 +0530
Dont update in selection mode
https://bugzilla.gnome.org/show_bug.cgi?id=726713
gnomemusic/grilo.py | 5 +++++
gnomemusic/view.py | 26 +++++++++++++++++++++++---
gnomemusic/window.py | 25 ++++++++++++++-----------
3 files changed, 42 insertions(+), 14 deletions(-)
---
diff --git a/gnomemusic/grilo.py b/gnomemusic/grilo.py
index efcea25..0de28df 100644
--- a/gnomemusic/grilo.py
+++ b/gnomemusic/grilo.py
@@ -68,6 +68,8 @@ class Grilo(GObject.GObject):
self.tracker = None
self.changed_media_ids = []
self.pending_event_id = 0
+ self.changes_pending = {'Albums': False, 'Artists': False, 'Songs': False}
+ self.registry = Grl.Registry.get_default()
self.registry = Grl.Registry.get_default()
self.registry.connect('source_added', self._on_source_added)
@@ -112,6 +114,9 @@ class Grilo(GObject.GObject):
def emit_change_signal(self):
self.changed_media_ids = []
self.pending_event_id = 0
+ self.changes_pending['Albums'] = True
+ self.changes_pending['Artists'] = True
+ self.changes_pending['Songs'] = True
self.emit('changes-pending')
return False
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 40f783f..5c40dae 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -372,11 +372,17 @@ class Albums(ViewContainer):
@log
def _on_changes_pending(self, data=None):
- if (self._init):
+ if (self._init and self.header_bar._selectionMode is False):
self._offset = 0
self._cached_count = -1
self._model.clear()
self.populate()
+ grilo.changes_pending['Albums'] = False
+
+ @log
+ def _on_selection_mode_changed(self, widget, data=None):
+ if self.header_bar._selectionMode is False and grilo.changes_pending['Albums'] is True:
+ self._on_changes_pending()
@log
def _back_button_clicked(self, widget, data=None):
@@ -459,11 +465,17 @@ class Songs(ViewContainer):
@log
def _on_changes_pending(self, data=None):
- if (self._init):
+ if (self._init and self.header_bar._selectionMode is False):
self._model.clear()
self._offset = 0
self._cached_count = -1
self.populate()
+ grilo.changes_pending['Songs'] = False
+
+ @log
+ def _on_selection_mode_changed(self, widget, data=None):
+ if self.header_bar._selectionMode is False and grilo.changes_pending['Songs'] is True:
+ self._on_changes_pending()
@log
def _on_item_activated(self, widget, id, path):
@@ -646,12 +658,13 @@ class Artists (ViewContainer):
@log
def _on_changes_pending(self, data=None):
- if (self._init):
+ if (self._init and self.header_bar._selectionMode is False):
self._model.clear()
self._artists.clear()
self._offset = 0
self._cached_count = -1
self._populate()
+ grilo.changes_pending['Artists'] = False
@log
def _populate(self, data=None):
@@ -763,6 +776,12 @@ class Artists (ViewContainer):
self._last_selection)
@log
+ def _on_selection_mode_changed(self, widget, data=None):
+ self.artistAlbumsStack.set_sensitive(not self.header_bar._selectionMode)
+ if self.header_bar._selectionMode is False and grilo.changes_pending['Artists'] is True:
+ self._on_changes_pending()
+
+ @log
def get_selected_track_uris(self, callback):
self.items_selected = []
self.items_selected_callback = callback
@@ -1089,6 +1108,7 @@ class Playlist(ViewContainer):
self.playlists_sidebar.set_sensitive(not self.header_bar._selectionMode)
self.menubutton.set_sensitive(not self.header_bar._selectionMode)
+
@log
def _on_play_activate(self, menuitem, data=None):
_iter = self._model.get_iter_first()
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 33c49b9..fc59150 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -116,17 +116,17 @@ class Window(Gtk.ApplicationWindow):
if cursor is not None and cursor.next(None):
count = cursor.get_integer(0)
if not count > 0:
- print("switching to Empty view")
- self._stack.disconnect(self._on_notify_model_id)
- self.disconnect(self._key_press_event_id)
- for i in range(0, 4):
- view = self.views.pop()
- view.destroy()
- self.toolbar.hide_stack()
- self._switch_to_empty_view()
+ if self.toolbar._selectionMode is False and len(self.views) != 1:
+ self._stack.disconnect(self._on_notify_model_id)
+ self.disconnect(self._key_press_event_id)
+ view_count = len(self.views)
+ for i in range(0, view_count):
+ view = self.views.pop()
+ view.destroy()
+ self.toolbar.hide_stack()
+ self._switch_to_empty_view()
else:
if (self.views[0] == self.views[-1]):
- print("switching to player view")
view = self.views.pop()
view.destroy()
self._switch_to_player_view()
@@ -207,7 +207,8 @@ class Window(Gtk.ApplicationWindow):
self._switch_to_player_view()
# To revert to the No Music View when no songs are found
else:
- self._switch_to_empty_view()
+ if self.toolbar._selectionMode is False:
+ self._switch_to_empty_view()
self.toolbar._search_button.connect('toggled', self._on_search_toggled)
self.toolbar.connect('selection-mode-changed', self._on_selection_mode_changed)
@@ -340,7 +341,9 @@ class Window(Gtk.ApplicationWindow):
@log
def _on_selection_mode_changed(self, widget, data=None):
- if self.toolbar._selectionMode:
+ if self.toolbar._selectionMode is False:
+ self._on_changes_pending()
+ else:
in_playlist = self._stack.get_visible_child() == self.views[3]
self.selection_toolbar._add_to_playlist_button.set_visible(not in_playlist)
self.selection_toolbar._remove_from_playlist_button.set_visible(in_playlist)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]