X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmovie-list-window.vala;h=f975746116ab9797b2506d702c9111b217b2d0ce;hb=dd0aaa265a3c3fd13d9e85bc8d11f57ce71f44bc;hp=460741e6423564da628601377baba268d46a0a2e;hpb=3f4c7ec27c1ac76b19a2f74c1526c996d7e87804;p=cinaest diff --git a/src/movie-list-window.vala b/src/movie-list-window.vala index 460741e..f975746 100644 --- a/src/movie-list-window.vala +++ b/src/movie-list-window.vala @@ -21,6 +21,7 @@ using Hildon; public class MovieListWindow : StackableWindow { private MovieListMenu menu; + private Hildon.EditToolbar edit_toolbar; private Hildon.Entry search_field; private Toolbar search_bar; private uint source_id; @@ -69,7 +70,12 @@ public class MovieListWindow : StackableWindow { add (vbox); + edit_toolbar = new Hildon.EditToolbar.with_text (_("Select movies"), _("Delete")); + set_edit_toolbar (edit_toolbar); + // Connect signals + edit_toolbar.button_clicked.connect (on_delete_button_clicked); + edit_toolbar.arrow_clicked.connect (leave_edit_mode); search_field.changed.connect (on_search_field_changed); close_button.clicked.connect (on_close_button_clicked); key_press_event.connect (on_key_press_event); @@ -81,6 +87,7 @@ public class MovieListWindow : StackableWindow { search_field.grab_default (); show_all (); + edit_toolbar.hide (); search_bar_visible = false; search_bar.hide (); movie_list.hide (); @@ -102,6 +109,60 @@ public class MovieListWindow : StackableWindow { } } + public void on_delete_movies_clicked () { + fullscreen (); + edit_toolbar.show (); + movie_list.set_hildon_ui_mode (UIMode.EDIT); + + var selection = movie_list.get_selection (); + selection.unselect_all (); + } + + private void on_delete_button_clicked () { + var selection = movie_list.get_selection (); + int count = selection.count_selected_rows (); + if (count == 0) { + Banner.show_information (this, null, _("No movies selected")); + leave_edit_mode (); + } + + var dialog = new Note.confirmation (this, _("Delete %d movies?").printf (count)); + var res = dialog.run (); + + if (res == Gtk.ResponseType.OK) { + weak TreeModel model; + var rows = selection.get_selected_rows (out model); + + var movies = new List (); + + // get selected movies from the store + foreach (TreePath path in rows) { + TreeIter iter; + + if (model.get_iter (out iter, path)) { + Movie movie; + + model.get (iter, MovieListStore.Columns.MOVIE, out movie); + if (movie != null) { + movies.append (movie); + } + } + } + // and remove them + foreach (Movie movie in movies) { + store.remove (movie); + } + } + dialog.destroy (); + leave_edit_mode (); + } + + private void leave_edit_mode () { + movie_list.set_hildon_ui_mode (UIMode.NORMAL); + edit_toolbar.hide (); + unfullscreen (); + } + private void on_close_button_clicked () { search_field.set_text (""); search_bar_visible = false;