Movie list menu: use hildon-fm-2 file chooser dialog to import files
[cinaest] / src / movie-list-menu.vala
index ac9e9f6..31de2d7 100644 (file)
@@ -20,7 +20,7 @@ using Gtk;
 using Hildon;
 
 public class MovieListMenu : AppMenu {
-       public TreeSortable sortable;
+       public MovieListStore store;
        public MovieFilter filter;
        private weak MovieListWindow movie_list_window;
        private Hildon.Button filter_year;
@@ -53,15 +53,15 @@ public class MovieListMenu : AppMenu {
                // Connect signals
                sort_by_title.toggled.connect (button => {
                        if (button.get_active ())
-                               sortable.set_sort_column_id (MovieListStore.Columns.TITLE, Gtk.SortType.ASCENDING);
+                               store.set_sort_column_id (MovieListStore.Columns.TITLE, Gtk.SortType.ASCENDING);
                });
                sort_by_year.toggled.connect (button => {
                        if (button.get_active ())
-                               sortable.set_sort_column_id (MovieListStore.Columns.YEAR, Gtk.SortType.DESCENDING);
+                               store.set_sort_column_id (MovieListStore.Columns.YEAR, Gtk.SortType.DESCENDING);
                });
                sort_by_rating.toggled.connect (button => {
                        if (button.get_active ())
-                               sortable.set_sort_column_id (MovieListStore.Columns.RATING, Gtk.SortType.DESCENDING);
+                               store.set_sort_column_id (MovieListStore.Columns.RATING, Gtk.SortType.DESCENDING);
                });
 
                add_filter (sort_by_title);
@@ -101,9 +101,11 @@ public class MovieListMenu : AppMenu {
                show_all ();
        }
 
+       private MovieSource source_;
        public MovieSource source {
                set {
-                       if (SourceFlags.EDITABLE in value.get_flags ()) {
+                       source_ = value;
+                       if (source_ != null && SourceFlags.EDITABLE in source_.get_flags ()) {
                                delete_movies.show ();
                                import_movies.show ();
                        } else {
@@ -213,10 +215,22 @@ public class MovieListMenu : AppMenu {
                poster_view.set_label (poster_mode ? _("Poster view") : _("List view"));
        }
 
+       Hildon.FileChooserDialog file_chooser;
        public void on_import_movies_clicked (Gtk.Button button) {
-               var dialog = new Gtk.Dialog ();
-               dialog.set_transient_for (movie_list_window);
-               dialog.set_title (_("Import movies"));
+               file_chooser = new Hildon.FileChooserDialog (movie_list_window, FileChooserAction.OPEN);
+               file_chooser.set_title (_("Select file to import movies from"));
+
+               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 ());
+               }
+
 /*
                // import movies or ratings from some source
                for (var Plugin in CinaestProgram.plugins) {
@@ -227,7 +241,7 @@ public class MovieListMenu : AppMenu {
                if (exporters > 1)
                        exporter = run_exporter_selection_dialog
 */
-               dialog.run ();
+               file_chooser.destroy ();
        }
 
        public void on_settings_clicked (Gtk.Button button) {