content.pack_start (plots, true, true, 0);
content.pack_start (download, true, true, 0);
+ 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
+ hbox = new Gtk.HBox (false, MARGIN_DOUBLE);
+ label = new Gtk.Label ("Password");
+ sizegroup.add_widget (label);
+ 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);
+
+ dialog.add_button (_("Save"), ResponseType.ACCEPT);
+
// Connect signals
plots.toggled.connect (() => {
if (download_plots != plots.get_active ())
}
}
+class IMDbMovie : Movie {
+ public override string get_plot () {
+ var sqlite = new IMDbSqlite (Path.build_filename (Environment.get_user_cache_dir (),
+ "cinaest", "imdb.db", null));
+ print ("IMDb get_plot(\"%s (%d)\")\n", title, year);
+ return sqlite.get_plot ("%s (%d)".printf (title, year));
+ }
+}
+
class IMDBSource : MovieSource {
+ SList<Movie> result;
+ int results_waiting;
+
public override bool active { get; set construct; }
public IMDBSource () {
"cinaest", "imdb.db", null));
_get_callback = callback;
+ result = new SList<Movie> ();
+ results_waiting = 0;
int n = yield sqlite.query (filter, receive_movie, limit, cancellable);
+ if (results_waiting > 0)
+ _get_callback (result);
+ result = new SList<Movie> ();
return n;
}
private void receive_movie (string title, string? aka, int year, int rating, int genres) {
- Movie movie = new Movie ();
+ var movie = new IMDbMovie ();
movie.title = title;
movie.year = year;
movie.rating = rating;
} else {
movie.secondary = movie.genres.to_string ();
}
- _get_callback (movie);
+ result.append (movie);
+ if (++results_waiting >= 10) {
+ _get_callback (result);
+ result = new SList<Movie> ();
+ results_waiting = 0;
+ }
}
public override void add_movie (Movie movie) {
return _("Movies on IMDb");
}
- public override bool get_editable () {
- return false;
+ public override SourceFlags get_flags () {
+ return 0;
}
}
[ModuleInit]
-public Type register_plugin () {
+public Type register_plugin (TypeModule module) {
// types are registered automatically
return typeof (IMDbPlugin);
}