X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmovie-list-window.vala;h=133451af25666424926a9b437ba3cf385fc4d1f5;hb=93f3b57e52dadc83c5751a66c5fd616aa06eefdd;hp=958a2066d0d2c62fa34ff54d7892dbe046999ef4;hpb=7d9cdb818f4024c08f619be7f40d5b1087551c86;p=cinaest diff --git a/src/movie-list-window.vala b/src/movie-list-window.vala index 958a206..133451a 100644 --- a/src/movie-list-window.vala +++ b/src/movie-list-window.vala @@ -33,8 +33,10 @@ public class MovieListWindow : StackableWindow { private MovieWindow movie_window; private Alignment alignment; private int count; + private MovieSource source; - public MovieListWindow (MovieSource source) { + public MovieListWindow (MovieSource source_) { + source = source_; set_title (source.get_description ()); // View menu @@ -66,7 +68,7 @@ public class MovieListWindow : StackableWindow { // Movie list - connected to menu for sorting movie_list = new MovieListView (this, source.get_name () == _("Watched movies")); - menu.sortable = movie_list.sorted_store; + menu.sortable = movie_list.store; store = movie_list.store; store.source = source; @@ -92,7 +94,7 @@ public class MovieListWindow : StackableWindow { set_edit_toolbar (edit_toolbar); // Connect signals - menu.filter_changed.connect (() => { start_search (); }); + menu.filter_changed.connect (on_filter_changed); 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); @@ -130,18 +132,41 @@ public class MovieListWindow : StackableWindow { } } + private void on_filter_changed () { + var markup = new StringBuilder (); + if (filter.year_min != 0 || filter.year_max != 0) + markup.append (_(" - years")); + if (filter.rating_min != 0) + markup.append (_(" - rating")); + if (filter.genres.field != 0) + markup.append (_(" - genres")); + if (markup.str.length > 0) { + Gdk.Color color; + this.ensure_style (); + if (this.style.lookup_color ("ActiveTextColor", out color)) { + markup.prepend ("".printf (color.to_string ())); + markup.append (""); + } + markup.prepend (source.get_description ()); + set_markup (markup.str); + } else { + set_markup (source.get_description ()); + } + + start_search (); + } + 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 (); + movie_list.unselect_all (); } private void on_delete_button_clicked () { - var selection = movie_list.get_selection (); - int count = selection.count_selected_rows (); + var movies = movie_list.get_selected_movies (); + int count = (int) movies.length (); if (count == 0) { Banner.show_information (this, null, _("No movies selected")); leave_edit_mode (); @@ -152,25 +177,7 @@ public class MovieListWindow : StackableWindow { 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 + // Remove selected movies foreach (Movie movie in movies) { store.remove (movie); } @@ -269,5 +276,9 @@ public class MovieListWindow : StackableWindow { no_movies.show (); } } + + public unowned MovieListView get_movie_list_view () { + return movie_list; + } }