2007-01-06 Don Allingham <don@gramps-project.org>

* src/Editors/_EditAddress.py: new date entry
	* src/Editors/_EditLdsOrd.py: new date_entry
	* src/Editors/_EditSourceRef.py: new date_entry
	* src/Editors/_EditEventRef.py: new date_entry
	* src/Editors/_EditMedia.py: new date_entry
	* src/Editors/_EditName.py: new date_entry
	* src/Editors/_EditEvent.py: new date_entry
	* src/GrampsWidgets.py: add options to ValidatedDateEntry to specify colors and icon
	* src/glade/gramps.glade: new date_entry
	* src/Errors.py: new date_entry
	* src/DateEdit.py: new date_entry



svn: r7872
This commit is contained in:
Don Allingham 2007-01-06 22:35:29 +00:00
parent 3f8f228ab0
commit 927922a9be
12 changed files with 195 additions and 282 deletions

View File

@ -1,3 +1,16 @@
2007-01-06 Don Allingham <don@gramps-project.org>
* src/Editors/_EditAddress.py: new date entry
* src/Editors/_EditLdsOrd.py: new date_entry
* src/Editors/_EditSourceRef.py: new date_entry
* src/Editors/_EditEventRef.py: new date_entry
* src/Editors/_EditMedia.py: new date_entry
* src/Editors/_EditName.py: new date_entry
* src/Editors/_EditEvent.py: new date_entry
* src/GrampsWidgets.py: add options to ValidatedDateEntry to specify colors and icon
* src/glade/gramps.glade: new date_entry
* src/Errors.py: new date_entry
* src/DateEdit.py: new date_entry
2007-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk> 2007-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
* src/docgen/GtkPrint.py: minor tweeks * src/docgen/GtkPrint.py: minor tweeks

View File

@ -68,6 +68,7 @@ import DateHandler
import const import const
import GrampsDisplay import GrampsDisplay
import ManagedWindow import ManagedWindow
from Errors import MaskError, ValidationError
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -120,7 +121,7 @@ class DateEdit:
self.pixmap_obj = button_obj.get_child() self.pixmap_obj = button_obj.get_child()
self.text_obj.connect('focus-out-event',self.parse_and_check) self.text_obj.connect('validate',self.validate)
self.button_obj.connect('clicked',self.invoke_date_editor) self.button_obj.connect('clicked',self.invoke_date_editor)
self.text = unicode(self.text_obj.get_text()) self.text = unicode(self.text_obj.get_text())
@ -131,31 +132,37 @@ class DateEdit:
Check current date object and display LED indicating the validity. Check current date object and display LED indicating the validity.
""" """
if self.date_obj.get_modifier() == Date.MOD_TEXTONLY: if self.date_obj.get_modifier() == Date.MOD_TEXTONLY:
self.pixmap_obj.set_from_pixbuf( self.text_obj.set_invalid()
self.pixmap_obj.render_icon(gtk.STOCK_DIALOG_ERROR, return False
gtk.ICON_SIZE_MENU))
elif self.date_obj.is_regular():
self.pixmap_obj.set_from_pixbuf(
self.pixmap_obj.render_icon(gtk.STOCK_YES,
gtk.ICON_SIZE_MENU))
else: else:
self.pixmap_obj.set_from_pixbuf( self.text_obj.set_valid()
self.pixmap_obj.render_icon(gtk.STOCK_DIALOG_WARNING, return True
gtk.ICON_SIZE_MENU))
def parse_and_check(self,*obj): def parse_and_check(self,*obj):
""" """
Called with the text box loses focus. Parses the text and calls Called with the text box loses focus. Parses the text and calls
the check() method ONLY if the text has changed. the check() method ONLY if the text has changed.
""" """
text = unicode(self.text_obj.get_text()) text = unicode(self.text_obj.get_text())
if text != self.text: if text != self.text:
self.text = text self.text = text
self.date_obj.copy(DateHandler.parser.parse(text)) self.date_obj.copy(DateHandler.parser.parse(text))
self.text_obj.set_text(DateHandler.displayer.display(self.date_obj)) self.text_obj.set_text(DateHandler.displayer.display(self.date_obj))
self.check() if self.check():
return None
else:
return ValidationError('Bad Date')
def validate(self, widget, data):
"""
Called with the text box loses focus. Parses the text and calls
the check() method ONLY if the text has changed.
"""
self.date_obj.copy(DateHandler.parser.parse(unicode(data)))
if self.check():
return None
else:
return ValidationError('Bad Date')
def invoke_date_editor(self,obj): def invoke_date_editor(self,obj):
""" """

View File

@ -80,8 +80,13 @@ class EditAddress(EditSecondary):
_('Address Editor')) _('Address Editor'))
def _setup_fields(self): def _setup_fields(self):
table = self.top.get_widget('table26')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 1, 6, 0, 1)
self.addr_start = MonitoredDate( self.addr_start = MonitoredDate(
self.top.get_widget("address_start"), date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),
self.obj.get_date_object(), self.obj.get_date_object(),
self.uistate, self.uistate,

View File

@ -144,7 +144,11 @@ class EditEvent(EditPrimary):
self.obj.get_type, self.obj.get_type,
custom_values=self.get_custom_events()) custom_values=self.get_custom_events())
date_entry = self.top.get_widget("eventDate") table = self.top.get_widget('table21')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 3, 4, 0, 1)
self.date_field = MonitoredDate( self.date_field = MonitoredDate(
date_entry, date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),

View File

@ -137,7 +137,11 @@ class EditEventRef(EditReference):
self.db.readonly, self.db.readonly,
custom_values=self.get_custom_events()) custom_values=self.get_custom_events())
date_entry = self.top.get_widget("eer_date") table = self.top.get_widget('table62')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 1, 2, 1, 2)
self.date_check = MonitoredDate( self.date_check = MonitoredDate(
date_entry, date_entry,
self.top.get_widget("eer_date_stat"), self.top.get_widget("eer_date_stat"),
@ -146,7 +150,6 @@ class EditEventRef(EditReference):
self.track, self.track,
self.db.readonly) self.db.readonly)
date_entry.grab_focus()
def _create_tabbed_pages(self): def _create_tabbed_pages(self):
""" """

View File

@ -175,8 +175,13 @@ class EditLdsOrd(EditSecondary):
self.top.get_widget("private"), self.top.get_widget("private"),
self.obj, self.db.readonly) self.obj, self.db.readonly)
table = self.top.get_widget('table')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 1, 2, 3, 4)
self.date_field = MonitoredDate( self.date_field = MonitoredDate(
self.top.get_widget("date"), date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),
self.obj.get_date_object(), self.obj.get_date_object(),
self.uistate, self.uistate,
@ -357,10 +362,15 @@ class EditFamilyLdsOrd(EditSecondary):
self.priv = PrivacyButton( self.priv = PrivacyButton(
self.top.get_widget("private"), self.top.get_widget("private"),
self.obj) self.obj, self.db.readonly)
table = self.top.get_widget('table')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 1, 2, 3, 4)
self.date_field = MonitoredDate( self.date_field = MonitoredDate(
self.top.get_widget("date"), date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),
self.obj.get_date_object(), self.obj.get_date_object(),
self.uistate, self.uistate,

View File

@ -96,8 +96,13 @@ class EditMedia(EditPrimary):
self.define_help_button(self.glade.get_widget('button102'),'adv-media') self.define_help_button(self.glade.get_widget('button102'),'adv-media')
def _setup_fields(self): def _setup_fields(self):
table = self.glade.get_widget('table8')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 2, 3, 2, 3)
self.date_field = MonitoredDate( self.date_field = MonitoredDate(
self.glade.get_widget('date'), date_entry,
self.glade.get_widget("date_edit"), self.glade.get_widget("date_edit"),
self.obj.get_date_object(), self.obj.get_date_object(),
self.uistate, self.uistate,

View File

@ -160,8 +160,13 @@ class EditName(EditSecondary):
self.obj.get_surname_prefix, self.obj.get_surname_prefix,
self.db.readonly) self.db.readonly)
table = self.top.get_widget('table23')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 2, 3, 4, 5)
self.date = MonitoredDate( self.date = MonitoredDate(
self.top.get_widget("date"), date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),
self.obj.get_date_object(), self.obj.get_date_object(),
self.uistate, self.uistate,

View File

@ -99,9 +99,13 @@ class EditSourceRef(EditReference):
self.top.get_widget("private"), self.top.get_widget("private"),
self.source, self.db.readonly) self.source, self.db.readonly)
print self.top.get_widget('title')
self.title = MonitoredEntry( self.title = MonitoredEntry(
self.top.get_widget('title'), self.source.set_title, self.top.get_widget('title'),
self.source.get_title,self.db.readonly) self.source.set_title,
self.source.get_title,
self.db.readonly)
self.abbrev = MonitoredEntry( self.abbrev = MonitoredEntry(
self.top.get_widget('abbrev'), self.source.set_abbreviation, self.top.get_widget('abbrev'), self.source.set_abbreviation,
@ -126,8 +130,13 @@ class EditSourceRef(EditReference):
(_('Very High'), RelLib.SourceRef.CONF_VERY_HIGH)], (_('Very High'), RelLib.SourceRef.CONF_VERY_HIGH)],
self.db.readonly) self.db.readonly)
table = self.top.get_widget('table67')
date_entry = ValidatableMaskedEntry(str)
date_entry.show()
table.attach(date_entry, 1, 2, 0, 1)
self.date = MonitoredDate( self.date = MonitoredDate(
self.top.get_widget("date"), date_entry,
self.top.get_widget("date_stat"), self.top.get_widget("date_stat"),
self.source_ref.get_date_object(), self.source_ref.get_date_object(),
self.uistate, self.uistate,

View File

@ -128,3 +128,10 @@ class UnavailableError(Exception):
def __str__(self): def __str__(self):
return self.value return self.value
class MaskError(Exception):
pass
class ValidationError(Exception):
pass

View File

@ -42,6 +42,8 @@ import const
import Errors import Errors
import Config import Config
from Errors import MaskError, ValidationError
from DdTargets import DdTargets from DdTargets import DdTargets
_lock_path = os.path.join(const.image_dir, 'stock_lock.png') _lock_path = os.path.join(const.image_dir, 'stock_lock.png')
@ -662,12 +664,6 @@ class PlaceEntry:
# #
#============================================================================ #============================================================================
class MaskError(Exception):
pass
class ValidationError(Exception):
pass
class FadeOut(gobject.GObject): class FadeOut(gobject.GObject):
"""I am a helper class to draw the fading effect of the background """I am a helper class to draw the fading effect of the background
Call my methods start() and stop() to control the fading. Call my methods start() and stop() to control the fading.
@ -686,10 +682,9 @@ class FadeOut(gobject.GObject):
MERGE_COLORS_DELAY = 100 MERGE_COLORS_DELAY = 100
ERROR_COLOR = "#ffd5d5" def __init__(self, widget, err_color = "#ffd5d5"):
def __init__(self, widget):
gobject.GObject.__init__(self) gobject.GObject.__init__(self)
self.ERROR_COLOR = err_color
self._widget = widget self._widget = widget
self._start_color = None self._start_color = None
self._background_timeout_id = -1 self._background_timeout_id = -1
@ -733,7 +728,7 @@ class FadeOut(gobject.GObject):
##self._log.debug('_start_merging: Starting') ##self._log.debug('_start_merging: Starting')
func = self._merge_colors(self._start_color, func = self._merge_colors(self._start_color,
gtk.gdk.color_parse(FadeOut.ERROR_COLOR)).next gtk.gdk.color_parse(self.ERROR_COLOR)).next
self._background_timeout_id = ( self._background_timeout_id = (
gobject.timeout_add(FadeOut.MERGE_COLORS_DELAY, func)) gobject.timeout_add(FadeOut.MERGE_COLORS_DELAY, func))
self._countdown_timeout_id = -1 self._countdown_timeout_id = -1
@ -2005,15 +2000,16 @@ class ValidatableMaskedEntry(MaskedEntry):
#allowed_data_types = (basestring, datetime.date, datetime.time, #allowed_data_types = (basestring, datetime.date, datetime.time,
#datetime.datetime, object) + number #datetime.datetime, object) + number
def __init__(self, data_type=None): def __init__(self, data_type=None, err_color = "#ffd5d5", error_icon=ERROR_ICON):
self.data_type = None self.data_type = None
self.mandatory = False self.mandatory = False
self.error_icon = error_icon
MaskedEntry.__init__(self) MaskedEntry.__init__(self)
self._block_changed = False self._block_changed = False
self._valid = True self._valid = True
self._fade = FadeOut(self) self._fade = FadeOut(self, err_color)
self._fade.connect('color-changed', self._on_fadeout__color_changed) self._fade.connect('color-changed', self._on_fadeout__color_changed)
# FIXME put data type support back # FIXME put data type support back
@ -2141,7 +2137,8 @@ class ValidatableMaskedEntry(MaskedEntry):
self.set_tooltip(text) self.set_tooltip(text)
if not fade: if not fade:
self.set_stock(ERROR_ICON) if self.error_icon:
self.set_stock(self.error_icon)
self.update_background(gtk.gdk.color_parse(self._fade.ERROR_COLOR)) self.update_background(gtk.gdk.color_parse(self._fade.ERROR_COLOR))
return return
@ -2150,7 +2147,8 @@ class ValidatableMaskedEntry(MaskedEntry):
# (which removes this timeout) is called as soon as the user # (which removes this timeout) is called as soon as the user
# types valid data. # types valid data.
def done(fadeout, c): def done(fadeout, c):
self.set_stock(ERROR_ICON) if self.error_icon:
self.set_stock(self.error_icon)
self.queue_draw() self.queue_draw()
fadeout.disconnect(c.signal_id) fadeout.disconnect(c.signal_id)
@ -2245,7 +2243,7 @@ def main(args):
label = gtk.Label('Mandatory masked entry validated against user function:') label = gtk.Label('Mandatory masked entry validated against user function:')
vbox.pack_start(label) vbox.pack_start(label)
widget2 = ValidatableMaskedEntry(str) widget2 = ValidatableMaskedEntry(str, "#e0e0e0", error_icon=None)
widget2.set_mask('00/00/0000') widget2.set_mask('00/00/0000')
widget2.connect('validate', on_validate) widget2.connect('validate', on_validate)
widget2.mandatory = True widget2.mandatory = True

View File

@ -5544,7 +5544,6 @@
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">date</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -5730,6 +5729,8 @@
<child> <child>
<widget class="GtkImage" id="image2264"> <widget class="GtkImage" id="image2264">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
@ -5747,27 +5748,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkButton" id="file_select"> <widget class="GtkButton" id="file_select">
<property name="visible">True</property> <property name="visible">True</property>
@ -6843,7 +6823,6 @@
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">eventDate</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -6871,6 +6850,8 @@
<child> <child>
<widget class="GtkImage" id="date_stat_child"> <widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
@ -6948,27 +6929,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="eventDate">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkEntry" id="event_description"> <widget class="GtkEntry" id="event_description">
<property name="visible">True</property> <property name="visible">True</property>
@ -8798,7 +8758,7 @@
<property name="border_width">12</property> <property name="border_width">12</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">5</property> <property name="n_rows">5</property>
<property name="n_columns">3</property> <property name="n_columns">4</property>
<property name="homogeneous">False</property> <property name="homogeneous">False</property>
<property name="row_spacing">6</property> <property name="row_spacing">6</property>
<property name="column_spacing">12</property> <property name="column_spacing">12</property>
@ -8969,62 +8929,48 @@
</child> </child>
<child> <child>
<widget class="GtkHBox" id="hbox101"> <widget class="GtkComboBox" id="sort_as">
<property name="visible">True</property> <property name="visible">True</property>
<property name="homogeneous">False</property> <property name="items" translatable="yes"></property>
<property name="spacing">0</property> <property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkEntry" id="date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="date_stat">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Invoke date editor</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget> </widget>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="right_attach">3</property> <property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="date_stat">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Invoke date editor</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<child>
<widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">4</property> <property name="top_attach">4</property>
<property name="bottom_attach">5</property> <property name="bottom_attach">5</property>
<property name="x_options">fill</property> <property name="x_options">fill</property>
<property name="y_options">fill</property> <property name="y_options"></property>
</packing> </packing>
</child> </child>
@ -9076,29 +9022,13 @@
</widget> </widget>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="right_attach">3</property> <property name="right_attach">4</property>
<property name="top_attach">1</property> <property name="top_attach">1</property>
<property name="bottom_attach">2</property> <property name="bottom_attach">2</property>
<property name="x_options">fill</property> <property name="x_options">fill</property>
<property name="y_options">fill</property> <property name="y_options">fill</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkComboBox" id="sort_as">
<property name="visible">True</property>
<property name="items" translatable="yes"></property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget> </widget>
<packing> <packing>
<property name="tab_expand">False</property> <property name="tab_expand">False</property>
@ -10574,7 +10504,6 @@
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">eer_date</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -10648,27 +10577,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="eer_date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkHBox" id="eer_warning"> <widget class="GtkHBox" id="eer_warning">
<property name="border_width">6</property> <property name="border_width">6</property>
@ -10918,6 +10826,8 @@
<child> <child>
<widget class="GtkImage" id="eer_date_stat_child"> <widget class="GtkImage" id="eer_date_stat_child">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
@ -11198,7 +11108,6 @@
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">date</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -11214,27 +11123,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkButton" id="date_stat"> <widget class="GtkButton" id="date_stat">
<property name="visible">True</property> <property name="visible">True</property>
@ -11247,6 +11135,8 @@
<child> <child>
<widget class="GtkImage" id="image2682"> <widget class="GtkImage" id="image2682">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
@ -11697,27 +11587,6 @@ Very High</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkLabel" id="label611"> <widget class="GtkLabel" id="label611">
<property name="visible">True</property> <property name="visible">True</property>
@ -11809,6 +11678,27 @@ Very High</property>
<property name="y_options">fill</property> <property name="y_options">fill</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">●</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
</widget> </widget>
<packing> <packing>
<property name="tab_expand">False</property> <property name="tab_expand">False</property>
@ -12623,7 +12513,6 @@ Very High</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">date</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -12668,28 +12557,6 @@ Very High</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkButton" id="date_stat"> <widget class="GtkButton" id="date_stat">
<property name="visible">True</property> <property name="visible">True</property>
@ -12700,6 +12567,8 @@ Very High</property>
<child> <child>
<widget class="GtkImage" id="image2692"> <widget class="GtkImage" id="image2692">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
@ -12773,24 +12642,6 @@ Very High</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkComboBox" id="type">
<property name="visible">True</property>
<property name="items" translatable="yes">
</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child> <child>
<widget class="GtkComboBox" id="temple"> <widget class="GtkComboBox" id="temple">
<property name="visible">True</property> <property name="visible">True</property>
@ -13059,6 +12910,23 @@ Very High</property>
<property name="y_options"></property> <property name="y_options"></property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkComboBox" id="type">
<property name="visible">True</property>
<property name="items" translatable="yes">
</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget> </widget>
<packing> <packing>
<property name="padding">0</property> <property name="padding">0</property>
@ -13186,7 +13054,6 @@ Very High</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>
<property name="ypad">0</property> <property name="ypad">0</property>
<property name="mnemonic_widget">address_start</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property> <property name="width_chars">-1</property>
<property name="single_line_mode">False</property> <property name="single_line_mode">False</property>
@ -13439,28 +13306,6 @@ Very High</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkEntry" id="address_start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">6</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkEntry" id="state"> <widget class="GtkEntry" id="state">
<property name="visible">True</property> <property name="visible">True</property>
@ -13565,6 +13410,8 @@ Very High</property>
<child> <child>
<widget class="GtkImage" id="date_stat_child"> <widget class="GtkImage" id="date_stat_child">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_calendar</property>
<property name="xalign">0.5</property> <property name="xalign">0.5</property>
<property name="yalign">0.5</property> <property name="yalign">0.5</property>
<property name="xpad">0</property> <property name="xpad">0</property>