Plugins: add active property to movie sources
authorPhilipp Zabel <philipp.zabel@gmail.com>
Tue, 8 Dec 2009 22:57:06 +0000 (23:57 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Tue, 5 Jan 2010 18:38:28 +0000 (19:38 +0100)
This allows to hide unused sources in the user interface.

src/plugin-interface.vala
src/plugins/catalog-plugin.vala
src/plugins/google-plugin.vala
src/plugins/imdb-plugin.vala

index 473b8c6..631e6ee 100644 (file)
@@ -28,6 +28,8 @@ public abstract class Plugin : Object {
 }
 
 public abstract class MovieSource : Object {
+       public abstract bool active { get; set construct; }
+
        public delegate void ReceiveMovieFunction (Movie movie);
 
        public abstract async void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
index cd7b33a..fb1cff1 100644 (file)
@@ -135,12 +135,15 @@ class CatalogSource : MovieSource {
        private CatalogSqlite sqlite;
 
        public CatalogSource (string _table, string _name, string _description, CatalogSqlite _sqlite) {
+               GLib.Object (active: true);
                table = _table;
                name = _name;
                description = _description;
                sqlite = _sqlite;
        }
 
+       public override bool active { get; set construct; }
+
        public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
                yield sqlite.query (table, filter, callback, limit, cancellable);
        }
index a99d114..e77d868 100644 (file)
@@ -222,6 +222,12 @@ class GoogleSource : MovieSource {
        public string location;
        public string description;
 
+       public override bool active { get; set construct; }
+
+       public GoogleSource () {
+               GLib.Object (active: true);
+       }
+
        public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
                var parser = new GoogleParser ();
 
index f3cf05f..d03a0eb 100644 (file)
@@ -156,6 +156,12 @@ class IMDbPlugin : Plugin {
 }
 
 class IMDBSource : MovieSource {
+       public override bool active { get; set construct; }
+
+       public IMDBSource () {
+               GLib.Object (active: true);
+       }
+
        MovieSource.ReceiveMovieFunction _get_callback;
        public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
                // IMDb has too many movies