X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmovie-list-menu.vala;h=daea9e481baa4a4f22d19293a92f688e8c622020;hb=db58340a7fc45ea299263835be40bffa7bb5303f;hp=3e16769a415d047e79cf3a421edc81cfd54bfe54;hpb=0841f9ef3927125f8b50c1fb121eef6970a8e7ef;p=cinaest diff --git a/src/movie-list-menu.vala b/src/movie-list-menu.vala index 3e16769..daea9e4 100644 --- a/src/movie-list-menu.vala +++ b/src/movie-list-menu.vala @@ -20,14 +20,15 @@ using Gtk; using Hildon; public class MovieListMenu : AppMenu { - public TreeSortable sortable; + public MovieListStore store; public MovieFilter filter; - private MovieListWindow movie_list_window; + private weak MovieListWindow movie_list_window; private Hildon.Button filter_year; private Hildon.Button filter_rating; private Hildon.Button filter_genres; - private Hildon.Button select_source; + private Gtk.Button poster_view; private Gtk.Button delete_movies; + private Gtk.Button import_movies; public signal void filter_changed (); @@ -52,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); @@ -71,40 +72,45 @@ public class MovieListMenu : AppMenu { 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")); filter_genres = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Filter by genres"), _("Off")); - select_source = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Source"), _("None")); + poster_view = new Gtk.Button.with_label (_("Poster view")); delete_movies = new Gtk.Button.with_label (_("Delete movies")); + import_movies = new Gtk.Button.with_label (_("Import movies")); var settings = new Gtk.Button.with_label (_("Settings")); filter_year.set_style (ButtonStyle.PICKER); filter_rating.set_style (ButtonStyle.PICKER); filter_genres.set_style (ButtonStyle.PICKER); - select_source.set_style (ButtonStyle.PICKER); // Connect signals filter_year.clicked.connect (on_filter_year_clicked); filter_rating.clicked.connect (on_filter_rating_clicked); filter_genres.clicked.connect (on_filter_genres_clicked); - select_source.clicked.connect (on_select_source_clicked); + poster_view.clicked.connect (on_poster_view_clicked); delete_movies.clicked.connect (() => { movie_list_window.on_delete_movies_clicked (); }); + import_movies.clicked.connect (on_import_movies_clicked); settings.clicked.connect (on_settings_clicked); append (filter_year); append (filter_rating); append (filter_genres); - append (select_source); + append (poster_view); + append (import_movies); append (delete_movies); append (settings); show_all (); } + private MovieSource source_; public MovieSource source { set { - select_source.value = value.get_name (); - if (value.get_editable ()) { + source_ = value; + if (source_ != null && SourceFlags.EDITABLE in source_.get_flags ()) { delete_movies.show (); + import_movies.show (); } else { delete_movies.hide (); + import_movies.hide (); } } } @@ -133,6 +139,7 @@ public class MovieListMenu : AppMenu { } else { selector.set_active (1, 127); } + selector.center_on_selected (); dialog.set_selector (selector); var res = dialog.run (); @@ -150,6 +157,8 @@ public class MovieListMenu : AppMenu { filter_year.set_value (_("Until %d").printf (filter.year_max)); else if (filter.year_max == 0) filter_year.set_value (_("Since %d").printf (filter.year_min)); + else if (filter.year_min == filter.year_max) + filter_year.set_value ("%d".printf (filter.year_min)); else filter_year.set_value ("%d - %d".printf (filter.year_min, filter.year_max)); @@ -200,15 +209,27 @@ public class MovieListMenu : AppMenu { } } - 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; + public void on_poster_view_clicked (Gtk.Button button) { + var poster_mode = movie_list_window.get_movie_list_view ().poster_mode; + movie_list_window.get_movie_list_view ().poster_mode = !poster_mode; + poster_view.set_label (poster_mode ? _("Poster view") : _("List view")); + } - select_source.value = source.get_name (); + 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")); +/* + // import movies or ratings from some source + for (var Plugin in CinaestProgram.plugins) { + if (plugin.can_export_ratings ()) { + exporters++; + } + } + if (exporters > 1) + exporter = run_exporter_selection_dialog +*/ + dialog.run (); } public void on_settings_clicked (Gtk.Button button) {