source = new CatalogSource ("Loaned", _("Loaned movies"), _("Movies loaned to friends"), sqlite, !("Loaned" in hidden_sources));
sources.append (source);
+ source = new CatalogSource ("Watched", _("Watched movies"), _("Watched / rated movies"), sqlite, !("Watched" in hidden_sources));
+ sources.append (source);
+
source = new CatalogSource ("Watchlist", _("Watchlist"), _("Movies of interest"), sqlite, !("Watchlist" in hidden_sources));
sources.append (source);
int i = 0;
var available_sources = new List<MovieSource> ();
foreach (CatalogSource s in sources) {
- if (!s.contains (movie)) {
+ if (!s.contains (movie) && s.table != "Watched") {
available_sources.append ((MovieSource) s);
i++;
}
}
- var source_list = new SourceListView (available_sources, true);
+ var source_list = new SourceListView (available_sources, true, window);
var content = (VBox) dialog.get_content_area ();
content.pack_start (source_list, true, true, 0);
int res = dialog.run ();
if (res >= 0) {
var source = sources.nth_data (res);
- source.add_movie (movie);
- var banner = (Banner) Banner.show_information_with_markup (window, null, _("'%s' added to list '%s'").printf (movie.title, source.get_name ()));
- banner.set_timeout (1500);
+ if (source.table == "Loaned") {
+ var dialog = new Gtk.Dialog ();
+ dialog.set_title (_("Add to loaned movies"));
+
+ var contact = new Hildon.Entry (SizeType.FINGER_HEIGHT);
+ contact.set_placeholder ("Contact");
+ var date = new Hildon.DateButton (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL);
+ date.set_title (_("Loaned on"));
+ date.set_alignment (0.0f, 0.5f, 1.0f, 1.0f);
+
+ content = (Gtk.VBox) dialog.get_content_area ();
+ content.pack_start (contact, true, false, 0);
+ content.pack_start (date, true, false, 0);
+
+ dialog.add_button (_("Done"), Gtk.ResponseType.OK);
+ dialog.show_all ();
+ res = dialog.run ();
+ dialog.destroy ();
+ if (res == Gtk.ResponseType.OK) {
+ source.add_movie (movie);
+
+ var banner = (Banner) Banner.show_information_with_markup (window, null, _("'%s' added to list of loaned movies").printf (movie.title, source.get_name ()));
+ banner.set_timeout (1500);
+ }
+ } else {
+ source.add_movie (movie);
+
+ var banner = (Banner) Banner.show_information_with_markup (window, null, _("'%s' added to list '%s'").printf (movie.title, source.get_name ()));
+ banner.set_timeout (1500);
+ }
}
dialog.destroy ();
dialog = null;
dialog.set_transient_for (window);
dialog.set_title (_("Select active movie lists"));
- var source_list = new SourceListView (sources, false);
+ var source_list = new SourceListView (sources, false, window);
source_list.set_hildon_ui_mode (UIMode.EDIT);
var selection = source_list.get_selection ();
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);
+ public override async int get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
+ int n = yield sqlite.query (table, filter, callback, limit, cancellable);
+ return n;
}
public override void add_movie (Movie movie) {
return description;
}
- public override bool get_editable () {
- return true;
+ public override SourceFlags get_flags () {
+ return SourceFlags.EDITABLE;
}
}
[ModuleInit]
-public Type register_plugin () {
+public Type register_plugin (TypeModule module) {
// types are registered automatically
return typeof (CatalogPlugin);
}