X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmovie-list-store.vala;h=09d6c1dbda7e2734cc0699462f2234fa7210742f;hb=d3bbd5f87a7a48f6aa2e2d43bb440a77ab4ef749;hp=f9a78ad1b07ed3d07895c71d38e479bc0ae04584;hpb=4a59bd815750ab69cec9d388f4cd35127959c444;p=cinaest diff --git a/src/movie-list-store.vala b/src/movie-list-store.vala index f9a78ad..09d6c1d 100644 --- a/src/movie-list-store.vala +++ b/src/movie-list-store.vala @@ -39,11 +39,22 @@ public class MovieListStore : ListStore, TreeModel { }; private Gdk.Pixbuf no_poster; private MoviePoster.Factory poster_factory; - public MovieSource source; private MovieFilter filter; public bool update_running { get; set; } private Cancellable cancellable; + public signal void search_finished (int movies); + + private MovieSource _source; + public MovieSource source { + get { + return _source; + } + set { + _source = value; + } + } + construct { set_column_types (base_type); no_poster = null; @@ -71,7 +82,7 @@ public class MovieListStore : ListStore, TreeModel { movie.notify.disconnect (this.on_movie_changed); base.remove (iter); - if (source.get_editable ()) { + if (SourceFlags.EDITABLE in source.get_flags ()) { source.delete_movie (movie); } @@ -92,7 +103,7 @@ public class MovieListStore : ListStore, TreeModel { } public bool get_editable () { - return source.get_editable (); + return (SourceFlags.EDITABLE in source.get_flags ()); } public bool get_iter_from_movie (out TreeIter iter, Movie movie_a) { @@ -130,9 +141,11 @@ public class MovieListStore : ListStore, TreeModel { clear (); - if (source != null) + if (source != null) { // FIXME - arbitrary limit - yield source.get_movies (filter, receive_movie, 100, cancellable); + int n = yield source.get_movies (filter, receive_movie, 100, cancellable); + search_finished (n); + } update_running = false; if (cancellable.is_cancelled ()) { @@ -147,17 +160,19 @@ public class MovieListStore : ListStore, TreeModel { } } - private void receive_movie (Movie movie) { + private void receive_movie (SList movies) { TreeIter iter; if (cancellable.is_cancelled ()) return; - add (movie, out iter); - try { - poster_factory.queue_thumbnail (movie, 64, 64, false, receive_poster_thumbnail); - } catch (Error e) { - warning ("Failed to queue poster request: %s\n", e.message); + foreach (Movie movie in movies) { + add (movie, out iter); + try { + poster_factory.queue_thumbnail (movie, 64, 64, false, receive_poster_thumbnail); + } catch (Error e) { + warning ("Failed to queue poster request: %s\n", e.message); + } } }