[gnome-music] view: Make adding rows to models atomic
- From: Arnel A. Borja <arnelborja src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] view: Make adding rows to models atomic
- Date: Mon, 2 Sep 2013 16:18:04 +0000 (UTC)
commit cd32ba0dac5ef9b95fb7fbf8ae8ec08629a983fa
Author: Arnel A. Borja <arnelborja src gnome org>
Date: Sun Sep 1 22:45:23 2013 +0800
view: Make adding rows to models atomic
This ensures that when row-inserted signal is emitted, the row already
have values for all columns.
https://bugzilla.gnome.org/show_bug.cgi?id=705855
gnomemusic/view.py | 30 ++++++++++++++----------------
1 files changed, 14 insertions(+), 16 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 4f5b186..8399ee8 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -226,14 +226,14 @@ class ViewContainer(Stack):
title = albumArtCache.get_media_title(item)
item.set_title(title)
- _iter = self._model.append()
icon_name = self.nowPlayingIconName
+ _iter = self._model.insert_with_valuesv(
+ -1,
+ [0, 1, 2, 3, 4, 5, 7, 8, 9, 10],
+ [str(item.get_id()), '', title,
+ artist, self._symbolicIcon, item,
+ -1, icon_name, False, False])
self.player.discover_item(item, self._on_discovered, _iter)
- self._model.set(_iter,
- [0, 1, 2, 3, 4, 5, 7, 8, 9, 10],
- [str(item.get_id()), '', title,
- artist, self._symbolicIcon, item,
- -1, icon_name, False, False])
GLib.idle_add(self._update_album_art, item, _iter)
def _insert_album_art(self, item, cb_item, itr, x=False):
@@ -353,19 +353,19 @@ class Songs(ViewContainer):
if not item:
return
self._offset += 1
- _iter = self._model.append()
item.set_title(albumArtCache.get_media_title(item))
+ _iter = self._model.insert_with_valuesv(
+ -1,
+ [2, 3, 5, 8, 9, 10],
+ [albumArtCache.get_media_title(item),
+ item.get_string(Grl.METADATA_KEY_ARTIST),
+ item, self.nowPlayingIconName, False, False])
self.player.discover_item(item, self._on_discovered, _iter)
g_file = Gio.file_new_for_uri(item.get_url())
self.monitors.append(g_file.monitor_file(Gio.FileMonitorFlags.NONE,
None))
self.monitors[(self._offset - 1)].connect('changed',
self._on_item_changed, _iter)
- self._model.set(_iter,
- [2, 3, 5, 8, 9, 10],
- [albumArtCache.get_media_title(item),
- item.get_string(Grl.METADATA_KEY_ARTIST),
- item, self.nowPlayingIconName, False, False])
def _on_item_changed(self, monitor, file1, file2, event, _iter):
if self._model.iter_is_valid(_iter):
@@ -503,11 +503,10 @@ class Artists (ViewContainer):
def _populate(self, data=None):
selection = self.view.get_generic_view().get_selection()
if not selection.get_selected()[1]:
- self._allIter = self._model.append()
+ self._allIter = self._model.insert_with_valuesv(-1, [2], [_("All Artists")])
self._last_selection = self._allIter
self._artists[_("All Artists").lower()] =\
{'iter': self._allIter, 'albums': []}
- self._model.set(self._allIter, 2, _("All Artists"))
selection.select_path(self._model.get_path(self._allIter))
self.view.emit('item-activated', '0',
self._model.get_path(self._allIter))
@@ -572,9 +571,8 @@ class Artists (ViewContainer):
if not artist:
artist = _("Unknown Artist")
if not artist.lower() in self._artists:
- _iter = self._model.append()
+ _iter = self._model.insert_with_valuesv(-1, [2], [artist])
self._artists[artist.lower()] = {'iter': _iter, 'albums': []}
- self._model.set(_iter, [2], [artist])
self._artists[artist.lower()]['albums'].append(item)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]