[gnome-music] Dont update in selection mode
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] Dont update in selection mode
- Date: Mon, 26 May 2014 09:38:38 +0000 (UTC)
commit fd662247e29df9d4f12b8b78a4d513a28619134e
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 | 4 ++++
gnomemusic/view.py | 24 ++++++++++++++++++++----
gnomemusic/window.py | 25 ++++++++++++++-----------
3 files changed, 38 insertions(+), 15 deletions(-)
---
diff --git a/gnomemusic/grilo.py b/gnomemusic/grilo.py
index 69b4e04..fcee3f8 100644
--- a/gnomemusic/grilo.py
+++ b/gnomemusic/grilo.py
@@ -76,6 +76,7 @@ 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()
@log
@@ -122,6 +123,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 16427fe..b4b2bef 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -355,10 +355,16 @@ 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._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):
@@ -438,10 +444,16 @@ 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.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):
@@ -612,11 +624,12 @@ 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._populate()
+ grilo.changes_pending['Artists'] = False
@log
def _populate(self, data=None):
@@ -736,6 +749,8 @@ class Artists (ViewContainer):
@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):
@@ -1052,6 +1067,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()
@@ -1242,7 +1258,7 @@ class Search(ViewContainer):
@log
def _on_selection_mode_changed(self, widget, data=None):
- if self.get_visible_child() == self._artistAlbumsWidget:
+ if self._artistAlbumsWidget is not None and self.get_visible_child() == self._artistAlbumsWidget:
self._artistAlbumsWidget.set_selection_mode(self.header_bar._selectionMode)
@log
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 5f53bb7..93018b9 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -114,17 +114,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()
@@ -203,7 +203,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)
@@ -356,7 +357,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]