[gnome-music/wip/no-more-load-more: 2/2] Remove Load More button and it remains
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/no-more-load-more: 2/2] Remove Load More button and it remains
- Date: Thu, 29 Aug 2013 13:42:24 +0000 (UTC)
commit 15b08396d23203e52b3fdfffaa2b6567733c9820
Author: Vadim Rutkovsky <vrutkovs redhat com>
Date: Thu Aug 29 13:31:30 2013 +0200
Remove Load More button and it remains
https://bugzilla.gnome.org/show_bug.cgi?id=699832
gnomemusic/grilo.py | 12 ++---
gnomemusic/query.py | 17 --------
gnomemusic/view.py | 47 +-----------------------
gnomemusic/widgets.py | 98 +------------------------------------------------
4 files changed, 7 insertions(+), 167 deletions(-)
---
diff --git a/gnomemusic/grilo.py b/gnomemusic/grilo.py
index 13d77f0..4c2b7f9 100644
--- a/gnomemusic/grilo.py
+++ b/gnomemusic/grilo.py
@@ -87,20 +87,18 @@ class Grilo(GObject.GObject):
def populate_artists(self, offset, callback):
self.populate_items(Query.ARTISTS, offset, callback)
- def populate_albums(self, offset, callback, count=50):
- self.populate_items(Query.ALBUMS, offset, callback, count)
+ def populate_albums(self, offset, callback):
+ self.populate_items(Query.ALBUMS, offset, callback)
- def populate_songs(self, offset, callback, count=-1):
- self.populate_items(Query.SONGS, offset, callback, count)
+ def populate_songs(self, offset, callback):
+ self.populate_items(Query.SONGS, offset, callback)
def populate_album_songs(self, album_id, callback):
self.populate_items(Query.album_songs(album_id), 0, callback)
- def populate_items(self, query, offset, callback, count=50):
+ def populate_items(self, query, offset, callback):
options = self.options.copy()
options.set_skip(offset)
- if count != -1:
- options.set_count(count)
def _callback(source, param, item, count, data, offset):
callback(source, param, item)
diff --git a/gnomemusic/query.py b/gnomemusic/query.py
index e40eb8a..29e0bac 100644
--- a/gnomemusic/query.py
+++ b/gnomemusic/query.py
@@ -105,14 +105,6 @@ class Query():
ORDER BY fn:lower-case(?title) ?author ?albumyear
'''.replace('\n', ' ').strip()
- ALBUMS_COUNT = '''
- SELECT
- COUNT(?album) AS childcount
- WHERE {
- ?album a nmm:MusicAlbum
- }
- '''.replace('\n', ' ').strip()
-
ARTISTS = '''
SELECT DISTINCT
rdf:type(?album)
@@ -190,15 +182,6 @@ class Query():
ORDER BY fn:lower-case(?author) ?albumyear nie:title(?album)
'''.replace('\n', ' ').strip()
- ARTISTS_COUNT = '''
- SELECT
- COUNT(DISTINCT ?artist)
- WHERE {
- ?artist a nmm:Artist .
- ?album nmm:performer ?artist
- }
- '''.replace('\n', ' ').strip()
-
SONGS = '''
SELECT DISTINCT
rdf:type(?song)
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 3fb5978..1b6fb2c 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -42,7 +42,6 @@ from gi.repository import Tracker
from gettext import gettext as _
from gnomemusic.grilo import grilo
import gnomemusic.widgets as Widgets
-from gnomemusic.query import Query
from gnomemusic.albumArtCache import AlbumArtCache as albumArtCache
tracker = Tracker.SparqlConnection.get(None)
@@ -59,7 +58,6 @@ class ViewContainer(Stack):
nowPlayingIconName = 'media-playback-start-rtl-symbolic'
errorIconName = 'dialog-error-symbolic'
starIconName = 'starred-symbolic'
- countQuery = None
def __init__(self, title, header_bar, selection_toolbar, useStack=False):
Stack.__init__(self,
@@ -89,7 +87,6 @@ class ViewContainer(Stack):
)
self.view.set_view_type(Gd.MainViewType.ICON)
self.view.set_model(self._model)
- self.vadjustment = self.view.get_vadjustment()
self.selection_toolbar = selection_toolbar
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
box.pack_start(self.view, True, True, 0)
@@ -105,10 +102,6 @@ class ViewContainer(Stack):
else:
self._grid.add(box)
- self._cached_count = -1
- self._loadMore = Widgets.LoadMoreButton(self._get_remaining_item_count)
- box.pack_end(self._loadMore.widget, False, False, 0)
- self._loadMore.widget.connect('clicked', self._populate)
self.view.connect('item-activated', self._on_item_activated)
self._cursor = None
self.header_bar = header_bar
@@ -122,8 +115,6 @@ class ViewContainer(Stack):
self.show_all()
self._items = []
- self._loadMore.widget.hide()
- self._connect_view()
self.cache = albumArtCache.get_default()
self._symbolicIcon = self.cache.make_default_icon(self._iconHeight,
self._iconWidth)
@@ -135,11 +126,6 @@ class ViewContainer(Stack):
self.view.connect('view-selection-changed',
self._on_view_selection_changed)
- def _get_remaining_item_count(self):
- if self._cached_count < 0:
- self._cached_count = Widgets.get_count(self.countQuery)
- return self._cached_count - self._offset
-
def _on_header_bar_toggled(self, button):
if button.get_active():
self.view.set_selection_mode(True)
@@ -178,34 +164,6 @@ class ViewContainer(Stack):
def _on_state_changed(self, widget, data=None):
pass
- def _connect_view(self):
- self._adjustmentValueId = self.vadjustment.connect(
- 'value-changed',
- self._on_scrolled_win_change)
-
- def _on_scrolled_win_change(self, data=None):
- vScrollbar = self.view.get_vscrollbar()
- revealAreaHeight = 32
-
- #if there's no vscrollbar, or if it's not visible, hide the button
- if not vScrollbar or not vScrollbar.get_visible():
- self._loadMore.set_block(True)
- return
-
- value = self.vadjustment.get_value()
- upper = self.vadjustment.get_upper()
- page_size = self.vadjustment.get_page_size()
-
- end = False
- #special case self values which happen at construction
- if (value == 0) and (upper == 1) and (page_size == 1):
- end = False
- else:
- end = not (value < (upper - page_size - revealAreaHeight))
- if self._get_remaining_item_count() <= 0:
- end = False
- self._loadMore.set_block(not end)
-
def populate(self):
print('populate')
@@ -277,7 +235,7 @@ class Empty(Stack):
music_folder_path = GLib.get_user_special_dir(GLib.USER_DIRECTORY_MUSIC)
widget = builder.get_object('container')
label = builder.get_object('label1')
- label.set_label(_("No Music found!\n Put some files into the folder %s" %music_folder_path))
+ label.set_label(_("No Music found!\n Put some files into the folder %s" % music_folder_path))
self.add(widget)
self.show_all()
@@ -287,7 +245,6 @@ class Albums(ViewContainer):
ViewContainer.__init__(self, _("Albums"), header_bar,
selection_toolbar)
self.view.set_view_type(Gd.MainViewType.ICON)
- self.countQuery = Query.ALBUMS_COUNT
self._albumWidget = Widgets.AlbumWidget(player)
self.add(self._albumWidget)
@@ -315,7 +272,6 @@ class Albums(ViewContainer):
class Songs(ViewContainer):
def __init__(self, header_bar, selection_toolbar, player):
ViewContainer.__init__(self, _("Songs"), header_bar, selection_toolbar)
- self.countQuery = Query.SONGS_COUNT
self._items = {}
self.isStarred = None
self.iter_to_clean = None
@@ -470,7 +426,6 @@ class Artists (ViewContainer):
self.artists_counter = 0
self.player = player
self._artists = {}
- self.countQuery = Query.ARTISTS_COUNT
self.artistAlbumsStack = Stack(
transition_type=StackTransitionType.CROSSFADE,
)
diff --git a/gnomemusic/widgets.py b/gnomemusic/widgets.py
index 8668ec2..76abda8 100644
--- a/gnomemusic/widgets.py
+++ b/gnomemusic/widgets.py
@@ -38,7 +38,6 @@ from gi.repository import Tracker
from gettext import gettext as _
from gnomemusic.grilo import grilo
import logging
-from gnomemusic.query import Query
from gnomemusic.albumArtCache import AlbumArtCache
tracker = Tracker.SparqlConnection.get(None)
@@ -50,59 +49,6 @@ else:
ERROR_ICON_NAME = 'dialog-error-symbolic'
-def get_count(countQuery):
- count = -1
- if countQuery:
- cursor = tracker.query(countQuery, None)
- if cursor and cursor.next(None):
- count = cursor.get_integer(0)
- return count
-
-
-class LoadMoreButton:
- def __init__(self, counter):
- self._block = False
- self._counter = counter
- child = Gtk.Grid(column_spacing=10,
- hexpand=False,
- halign=Gtk.Align.CENTER,
- visible=True)
- self._spinner = Gtk.Spinner(halign=Gtk.Align.CENTER,
- no_show_all=True)
- self._spinner.set_size_request(16, 16)
- child.add(self._spinner)
- self._label = Gtk.Label(label=_("Load More"),
- visible=True)
- child.add(self._label)
- self.widget = Gtk.Button(no_show_all=True,
- child=child)
- self.widget.get_style_context().add_class('documents-load-more')
- self.widget.connect('clicked', self._on_load_more_clicked)
- self._on_item_count_changed()
-
- def _on_load_more_clicked(self, data=None):
- self._label.set_label(_("Loading..."))
- self._spinner.show()
- self._spinner.start()
-
- def _on_item_count_changed(self):
- remaining_docs = self._counter()
- visible = remaining_docs >= 0 and not self._block
- self.widget.set_visible(visible)
-
- if visible:
- self._label.set_label(_("Load More"))
- self._spinner.stop()
- self._spinner.hide()
-
- def set_block(self, block):
- if (self._block == block):
- return
-
- self._block = block
- self._on_item_count_changed()
-
-
class AlbumWidget(Gtk.EventBox):
tracks = []
@@ -435,55 +381,13 @@ class AllArtistsAlbums(ArtistAlbums):
def __init__(self, player):
ArtistAlbums.__init__(self, _("All Artists"), [], player)
self._offset = 0
- self.countQuery = Query.ALBUMS_COUNT
self._cached_count = -1
- self._load_more = LoadMoreButton(self._get_remaining_item_count)
- self.pack_end(self._load_more.widget, False, False, 0)
- self._load_more.widget.connect('clicked', self._populate)
- self.vadjustment = self._scrolledWindow.get_vadjustment()
- self._connect_view()
self._populate()
- def _get_remaining_item_count(self):
- if self._cached_count < 0:
- self._cached_count = get_count(self.countQuery)
- return self._cached_count - self._offset
-
- def _connect_view(self):
- self._adjustmentValueId =\
- self.vadjustment.connect('value-changed', self._on_scrolled_win_change)
- self._adjustmentChangedId =\
- self.vadjustment.connect('changed', self._on_scrolled_win_change)
- self._scrollbarVisibleId =\
- self._scrolledWindow.get_vscrollbar().connect(
- 'notify::visible',
- self._on_scrolled_win_change)
- self._on_scrolled_win_change()
-
- def _on_scrolled_win_change(self, scrollbar=None, pspec=None, data=None):
- vScrollbar = self._scrolledWindow.get_vscrollbar()
- revealAreaHeight = 32
-
- # if there's no vscrollbar, or if it's not visible, hide the button
- if not vScrollbar or not vScrollbar.get_visible():
- self._load_more.set_block(True)
- return
-
- value = self.vadjustment.get_value()
- upper = self.vadjustment.get_upper()
- page_size = self.vadjustment.get_page_size()
- end = False
-
- # special case this values which happen at construction
- if (((value != 0) or (upper != 1) or (page_size != 1))
- and self._get_remaining_item_count() > 0):
- end = not (value < (upper - page_size - revealAreaHeight))
- self._load_more.set_block(not end)
-
def _populate(self, data=None):
if grilo.tracker:
GLib.idle_add(grilo.populate_albums,
- self._offset, self.add_item, 5)
+ self._offset, self.add_item)
def add_item(self, source, param, item):
if item:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]