+ set {
+ if (value.get_editable ()) {
+ delete_movies.show ();
+ } else {
+ delete_movies.hide ();
+ }
+ }
+ }
+
+ public void on_filter_year_clicked () {
+ var dialog = new PickerDialog (movie_list_window);
+ dialog.set_title (_("Filter by year"));
+
+ var year_store = new ListStore (1, typeof (string));
+ TreeIter iter;
+ for (int i = 0; i < 128; i++) {
+ year_store.append (out iter);
+ year_store.set_value (iter, 0, "%d".printf (1888 + i));
+ }
+
+ var selector = new TouchSelector ();
+ selector.append_text_column (year_store, true);
+ selector.append_text_column (year_store, true);
+ if (filter.year_min > 1888 && filter.year_min < 2015) {
+ selector.set_active (0, filter.year_min - 1888);
+ } else {
+ selector.set_active (0, 0);
+ }
+ if (filter.year_max > 1888 && filter.year_max < 2015) {
+ selector.set_active (1, filter.year_max - 1888);
+ } else {
+ selector.set_active (1, 127);
+ }
+ selector.center_on_selected ();
+ dialog.set_selector (selector);
+
+ var res = dialog.run ();
+ if (res == ResponseType.OK) {
+ filter.year_min = 1888 + selector.get_active (0);
+ if (filter.year_min <= 1888)
+ filter.year_min = 0;
+ filter.year_max = 1888 + selector.get_active (1);
+ if (filter.year_max >= 2015)
+ filter.year_max = 0;
+
+ if (filter.year_min == 0 && filter.year_max == 0)
+ filter_year.set_value (_("Off"));
+ else if (filter.year_min == 0)
+ 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));
+
+ filter_changed ();
+ }
+ dialog.destroy ();