Movie list window / menu: add edit mode to delete multiple movies
[cinaest] / src / movie-list-menu.vala
index 75a9f52..94fc795 100644 (file)
@@ -21,6 +21,13 @@ using Hildon;
 
 public class MovieListMenu : AppMenu {
        public TreeSortable sortable;
+       private MovieListWindow movie_list_window;
+       private Hildon.Button select_source;
+       private Gtk.Button delete_movies;
+
+       public MovieListMenu (MovieListWindow window) {
+               movie_list_window = window;
+       }
 
        construct {
                // Add sort buttons as view menu filters
@@ -54,6 +61,50 @@ public class MovieListMenu : AppMenu {
                add_filter (sort_by_year);
                add_filter (sort_by_rating);
 
+               // Add view menu buttons
+               select_source = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Source"), _("None"));
+               delete_movies = new Gtk.Button.with_label (_("Delete movies"));
+               var settings = new Gtk.Button.with_label (_("Settings"));
+
+               select_source.set_style (ButtonStyle.PICKER);
+
+               // Connect signals
+               select_source.clicked.connect (on_select_source_clicked);
+               delete_movies.clicked.connect (() => { movie_list_window.on_delete_movies_clicked (); });
+               settings.clicked.connect (on_settings_clicked);
+
+               append (select_source);
+               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 {
+                               delete_movies.hide ();
+                       }
+               }
+       }
+
+       public void on_select_source_clicked (Gtk.Button button) {
+               Hildon.Button select_source = (Hildon.Button) button;
+               var dialog = new SourceDialog (movie_list_window);
+
+               var source = movie_list_window.source;
+               dialog.run (ref source);
+               movie_list_window.source = source;
+
+               select_source.value = source.get_name ();
+       }
+
+       public void on_settings_clicked (Gtk.Button button) {
+               var dialog = new SettingsDialog (movie_list_window);
+
+               dialog.run ();
+       }
 }