7317: DateEdit statusbar to report invalid dates
Add/remove an explanatory prompt on the statusbar along with disabling/enabling the "OK" button when the date is invalid.
This commit is contained in:
parent
0c80c5eeea
commit
6b0b9f209f
@ -201,6 +201,8 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
|
|||||||
self.top.get_object('title'),
|
self.top.get_object('title'),
|
||||||
_('Date selection'))
|
_('Date selection'))
|
||||||
|
|
||||||
|
self.statusbar = self.top.get_object('statusbar')
|
||||||
|
|
||||||
self.ok_button = self.top.get_object('ok_button')
|
self.ok_button = self.top.get_object('ok_button')
|
||||||
self.calendar_box = self.top.get_object('calendar_box')
|
self.calendar_box = self.top.get_object('calendar_box')
|
||||||
for name in Date.ui_calendar_names:
|
for name in Date.ui_calendar_names:
|
||||||
@ -315,6 +317,8 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
|
|||||||
LOG.debug("revalidate: {0} changed, value: {1}".format(
|
LOG.debug("revalidate: {0} changed, value: {1}".format(
|
||||||
obj, the_value))
|
obj, the_value))
|
||||||
d = Date(self.date)
|
d = Date(self.date)
|
||||||
|
if not self.ok_button.get_sensitive():
|
||||||
|
self.statusbar.pop(1)
|
||||||
try:
|
try:
|
||||||
d.set(
|
d.set(
|
||||||
quality=the_quality,
|
quality=the_quality,
|
||||||
@ -329,6 +333,11 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
|
|||||||
return True
|
return True
|
||||||
except DateError as e:
|
except DateError as e:
|
||||||
self.ok_button.set_sensitive(0)
|
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
|
return False
|
||||||
|
|
||||||
def build_menu_names(self, obj):
|
def build_menu_names(self, obj):
|
||||||
|
Loading…
Reference in New Issue
Block a user