From a3c59778f9bc68344d75b1388b4b52abe69225d7 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov Date: Sat, 21 Dec 2013 23:11:54 +0200 Subject: [PATCH] 7317: DateEdit statusbar to report invalid dates Port [6b0b9f] from gramps34 Add/remove an explanatory prompt on the statusbar along with disabling/enabling the "OK" button when the date is invalid. --- gramps/gui/editors/editdate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gramps/gui/editors/editdate.py b/gramps/gui/editors/editdate.py index 9cf6775f0..43190167e 100644 --- a/gramps/gui/editors/editdate.py +++ b/gramps/gui/editors/editdate.py @@ -130,6 +130,7 @@ class EditDate(ManagedWindow): self.top.get_object('title'), _('Date selection')) + self.statusbar = self.top.get_object('statusbar') self.ok_button = self.top.get_object('ok_button') self.calendar_box = self.top.get_object('calendar_box') for name in Date.ui_calendar_names: @@ -245,6 +246,8 @@ class EditDate(ManagedWindow): LOG.debug("revalidate: {0} changed, value: {1}".format( obj, the_value)) d = Date(self.date) + if not self.ok_button.get_sensitive(): + self.statusbar.pop(1) try: d.set( quality=the_quality, @@ -259,6 +262,11 @@ class EditDate(ManagedWindow): return True except DateError as e: self.ok_button.set_sensitive(0) + self.statusbar.push(1, + _("Correct the date or switch from `{cur_mode}' to `{text_mode}'" + ).format( + cur_mode = MOD_TEXT[self.type_box.get_active()][1], + text_mode = MOD_TEXT[-1][1])) return False def build_menu_names(self, obj):