private Gtk.Button poster_view;
private Gtk.Button delete_movies;
private Gtk.Button import_movies;
+ private Gtk.Button export_movies;
public signal void filter_changed ();
poster_view = new Gtk.Button.with_label (_("Poster view"));
delete_movies = new Gtk.Button.with_label (_("Delete movies"));
import_movies = new Gtk.Button.with_label (_("Import movies"));
+ export_movies = new Gtk.Button.with_label (_("Export movies"));
var settings = new Gtk.Button.with_label (_("Settings"));
filter_year.set_style (ButtonStyle.PICKER);
poster_view.clicked.connect (on_poster_view_clicked);
delete_movies.clicked.connect (() => { movie_list_window.on_delete_movies_clicked (); });
import_movies.clicked.connect (on_import_movies_clicked);
+ export_movies.clicked.connect (on_export_movies_clicked);
settings.clicked.connect (on_settings_clicked);
append (filter_year);
append (filter_genres);
append (poster_view);
append (import_movies);
+ append (export_movies);
append (delete_movies);
append (settings);
if (source_ != null && SourceFlags.EDITABLE in source_.get_flags ()) {
delete_movies.show ();
import_movies.show ();
+ export_movies.show ();
} else {
delete_movies.hide ();
import_movies.hide ();
+ export_movies.show ();
}
}
}
}
Hildon.FileChooserDialog file_chooser;
+ int imported_movies = 0;
public void on_import_movies_clicked (Gtk.Button button) {
file_chooser = new Hildon.FileChooserDialog (movie_list_window, FileChooserAction.OPEN);
file_chooser.set_title (_("Select file to import movies from"));
print ("FILE: %s\n", file_chooser.get_filename ());
}
-/*
- // import movies or ratings from some source
- for (var Plugin in CinaestProgram.plugins) {
- if (plugin.can_export_ratings ()) {
- exporters++;
- }
+ var importer = new AMCImporter ();
+ importer.movie_available.connect (on_movie_available);
+ importer.parse_file (file_chooser.get_filename ());
+
+ file_chooser.destroy ();
+ file_chooser = null;
+
+ Banner.show_information (movie_list_window, null, _("%d movies imported").printf (imported_movies));
+ imported_movies = 0;
+ }
+
+ private void on_movie_available (Movie movie) {
+ // if filter.matches (movie)
+ source_.add_movie (movie);
+ TreeIter iter;
+ store.add (movie, out iter);
+ imported_movies++;
+ }
+
+ public void on_export_movies_clicked (Gtk.Button button) {
+ file_chooser = new Hildon.FileChooserDialog (movie_list_window, FileChooserAction.SAVE);
+ file_chooser.set_title (_("Select file to export movies to"));
+
+ var filter = new Gtk.FileFilter ();
+ filter.add_pattern ("*.xml");
+ file_chooser.set_filter (filter);
+
+ file_chooser.set_current_folder ("/home/user/MyDocs/.documents");
+
+ var res = file_chooser.run ();
+ if (res == ResponseType.OK) {
+ print ("FILE: %s\n", file_chooser.get_filename ());
}
- if (exporters > 1)
- exporter = run_exporter_selection_dialog
-*/
+
+ var movies = new List<Movie> ();
+ // TODO: append from store
+
+ var exporter = new AMCExporter ();
+ exporter.write_file (file_chooser.get_filename (), movies);
+
file_chooser.destroy ();
+ file_chooser = null;
}
public void on_settings_clicked (Gtk.Button button) {