Plugins: allow returning multiple movies per callback invocation
[cinaest] / src / plugins / moviepilot-plugin.vala
index 6bc198d..27fe167 100644 (file)
@@ -48,23 +48,25 @@ class MoviePilotPlugin : Plugin {
                dialog.set_transient_for (window);
                dialog.set_title (_("MoviePilot plugin settings"));
 
-               // Username
+               var content = (VBox) dialog.get_content_area ();
+               var sizegroup = new Gtk.SizeGroup (SizeGroupMode.HORIZONTAL);
+
+               // User name
+               var hbox = new Gtk.HBox (false, MARGIN_DOUBLE);
+               var label = new Gtk.Label (_("User name"));
+               sizegroup.add_widget (label);
+               var entry = new Hildon.Entry (SizeType.FINGER_HEIGHT);
+               hbox.pack_start (label, false, false, 0);
+               hbox.pack_start (entry, true, true, 0);
+               content.pack_start (hbox, true, true, 0);
+
                // Password
-               var hbox = new Gtk.HBox (false, 0);
-               var vbox = new Gtk.VBox (true, 0);
-               var label = new Gtk.Label ("User name");
-               vbox.pack_start (label, true, true, 0);
+               hbox = new Gtk.HBox (false, MARGIN_DOUBLE);
                label = new Gtk.Label ("Password");
-               vbox.pack_start (label, true, true, 0);
-               hbox.pack_start (vbox, false, false, 0);
-               vbox = new Gtk.VBox (true, 0);
-               var entry = new Hildon.Entry (SizeType.FINGER_HEIGHT);
-               vbox.pack_start (entry, true, true, 0);
+               sizegroup.add_widget (label);
                entry = new Hildon.Entry (SizeType.FINGER_HEIGHT);
-               vbox.pack_start (entry, true, true, 0);
-               hbox.pack_start (vbox, true, true, 0);
-
-               var content = (VBox) dialog.get_content_area ();
+               hbox.pack_start (label, false, false, 0);
+               hbox.pack_start (entry, true, true, 0);
                content.pack_start (hbox, true, true, 0);
 
                dialog.add_button (_("Save"), ResponseType.ACCEPT);
@@ -130,6 +132,7 @@ class MoviePilotSource : MovieSource {
        private void on_movies_found (DBus.Object sender, string[] movies, bool finished) {
                print ("found %d movies\n", movies.length);
                var parser = new Json.Parser ();
+               var result = new SList<Movie> ();
 
                for (int i = 0; i < movies.length; i++) {
                        var movie = new Movie ();
@@ -145,9 +148,11 @@ class MoviePilotSource : MovieSource {
                        movie.rating = (int) object.get_double_member ("rating");
                        movie.secondary = object.get_string_member ("genres").replace (",", ", ");
 
-                       callback (movie);
+                       result.append (movie);
                }
 
+               callback (result);
+
                if (finished) {
                        search = null;
                        Idle.add (get_movies_callback);