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 ();
// 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);
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 ();
}
}
}
} else {
selector.set_active (1, 127);
}
+ selector.center_on_selected ();
dialog.set_selector (selector);
var res = dialog.run ();
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));
}
}
- 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) {