Plugins: replace get_editable with get_flags, add support more MovieSource flags
authorPhilipp Zabel <philipp.zabel@gmail.com>
Fri, 9 Jul 2010 16:27:03 +0000 (18:27 +0200)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Wed, 14 Jul 2010 21:34:09 +0000 (23:34 +0200)
src/movie-list-menu.vala
src/movie-list-store.vala
src/movie-list-window.vala
src/plugin-interface.vala
src/plugins/catalog-plugin.vala
src/plugins/google-plugin.vala
src/plugins/imdb-plugin.vala
src/plugins/moviepilot-plugin.vala

index 68efa7d..b065dd8 100644 (file)
@@ -95,7 +95,7 @@ public class MovieListMenu : AppMenu {
 
        public MovieSource source {
                set {
-                       if (value.get_editable ()) {
+                       if (SourceFlags.EDITABLE in value.get_flags ()) {
                                delete_movies.show ();
                        } else {
                                delete_movies.hide ();
index 5957fe6..7a9d208 100644 (file)
@@ -82,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);
                        }
 
@@ -103,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) {
index 5839e34..a723ac4 100644 (file)
@@ -113,6 +113,13 @@ public class MovieListWindow : StackableWindow {
                filter = new MovieFilter ();
                menu.filter = filter;
                filter.title = "";
+               if (SourceFlags.ONLINE in source.get_flags ()) {
+                       no_movies.hide ();
+                       search_bar_visible = true;
+                       search_bar.show ();
+                       search_field.grab_focus ();
+                       return;
+               }
                if (store.start_search (filter)) {
                        no_movies.hide ();
                } else {
index cac2937..c1012ff 100644 (file)
@@ -27,6 +27,11 @@ public abstract class Plugin : Object {
        public abstract unowned string get_name ();
 }
 
+public enum SourceFlags {
+       EDITABLE = 1,
+       ONLINE = 2,
+}
+
 public abstract class MovieSource : Object {
        public abstract bool active { get; set construct; }
 
@@ -41,7 +46,7 @@ public abstract class MovieSource : Object {
 
        public abstract unowned string get_description ();
 
-       public abstract bool get_editable ();
+       public abstract SourceFlags get_flags ();
 }
 
 public class MovieAction : Object {
index 831fb3e..8f72985 100644 (file)
@@ -337,8 +337,8 @@ class CatalogSource : MovieSource {
                return description;
        }
 
-       public override bool get_editable () {
-               return true;
+       public override SourceFlags get_flags () {
+               return SourceFlags.EDITABLE;
        }
 }
 
index 600c407..f8b17b4 100644 (file)
@@ -299,8 +299,8 @@ class GoogleSource : MovieSource {
                return description;
        }
 
-       public override bool get_editable () {
-               return false;
+       public override SourceFlags get_flags () {
+               return SourceFlags.ONLINE;
        }
 }
 
index 64d8bb3..7bac4b9 100644 (file)
@@ -229,8 +229,8 @@ class IMDBSource : MovieSource {
                return _("Movies on IMDb");
        }
 
-       public override bool get_editable () {
-               return false;
+       public override SourceFlags get_flags () {
+               return 0;
        }
 }
 
index 44f5bf0..6bc198d 100644 (file)
@@ -169,8 +169,8 @@ class MoviePilotSource : MovieSource {
                return description;
        }
 
-       public override bool get_editable () {
-               return false;
+       public override SourceFlags get_flags () {
+               return SourceFlags.ONLINE;
        }
 }