Movie window / menu: close movie window when the movie is deleted from the menu
[cinaest] / src / movie-list-menu.vala
index 1f0d6f1..e0baee1 100644 (file)
@@ -21,10 +21,11 @@ using Hildon;
 
 public class MovieListMenu : AppMenu {
        public TreeSortable sortable;
+       public MovieFilter filter;
        private MovieListWindow movie_list_window;
        private Hildon.Button filter_year;
        private Hildon.Button filter_rating;
-       private Hildon.Button select_source;
+       private Hildon.Button filter_genres;
        private Gtk.Button delete_movies;
 
        public signal void filter_changed ();
@@ -68,34 +69,32 @@ public class MovieListMenu : AppMenu {
                // Add view menu buttons
                filter_year = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Filter by year"), _("Off"));
                filter_rating = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Filter by rating"), _("Off"));
-               select_source = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Source"), _("None"));
+               filter_genres = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Filter by genres"), _("Off"));
                delete_movies = new Gtk.Button.with_label (_("Delete movies"));
                var settings = new Gtk.Button.with_label (_("Settings"));
 
                filter_year.set_style (ButtonStyle.PICKER);
                filter_rating.set_style (ButtonStyle.PICKER);
-               select_source.set_style (ButtonStyle.PICKER);
+               filter_genres.set_style (ButtonStyle.PICKER);
 
                // Connect signals
                filter_year.clicked.connect (on_filter_year_clicked);
                filter_rating.clicked.connect (on_filter_rating_clicked);
-               select_source.clicked.connect (on_select_source_clicked);
+               filter_genres.clicked.connect (on_filter_genres_clicked);
                delete_movies.clicked.connect (() => { movie_list_window.on_delete_movies_clicked (); });
                settings.clicked.connect (on_settings_clicked);
 
                append (filter_year);
                append (filter_rating);
-               append (select_source);
+               append (filter_genres);
                append (delete_movies);
                append (settings);
 
                show_all ();
        }
 
-
        public MovieSource source {
                set {
-                       select_source.value = value.get_name ();
                        if (value.get_editable ()) {
                                delete_movies.show ();
                        } else {
@@ -178,15 +177,21 @@ public class MovieListMenu : AppMenu {
                dialog.destroy ();
        }
 
-       public void on_select_source_clicked (Gtk.Button button) {
-               Hildon.Button select_source = (Hildon.Button) button;
-               var dialog = new SourceDialog (movie_list_window);
+       public void on_filter_genres_clicked () {
+               var dialog = new GenreFilterDialog (movie_list_window);
+               string s;
+
+               var res = dialog.run (filter);
 
-               var source = movie_list_window.source;
-               dialog.run (ref source);
-               movie_list_window.source = source;
+               if (res == ResponseType.OK) {
+                       s = filter.genres.to_string ();
+                       if (s != null)
+                               filter_genres.set_value (s);
+                       else
+                               filter_genres.set_value (_("Off"));
 
-               select_source.value = source.get_name ();
+                       filter_changed ();
+               }
        }
 
        public void on_settings_clicked (Gtk.Button button) {