From 4d840ed97df0615d3c2c4b14363890ebbc69c721 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Fri, 13 Jan 2006 00:45:22 +0000 Subject: [PATCH] * src/DisplayTabs.py: sub tabs for edit dialogs * src/EditFamily.py: family editor integration * src/gramps.glade: family editor changes svn: r5732 --- ChangeLog | 5 + src/DisplayModels.py | 81 -- src/DisplayTabs.py | 205 ++++ src/EditFamily.py | 123 +- src/gramps.glade | 2594 +++++++++--------------------------------- 5 files changed, 887 insertions(+), 2121 deletions(-) create mode 100644 src/DisplayTabs.py diff --git a/ChangeLog b/ChangeLog index e028d0c19..2a79bb202 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-12 Don Allingham + * src/DisplayTabs.py: sub tabs for edit dialogs + * src/EditFamily.py: family editor integration + * src/gramps.glade: family editor changes + 2006-01-12 Richard Taylor * src/ObjectSelector/_ObjectSelectorWindow.py: initial outline of ObjectSelector diff --git a/src/DisplayModels.py b/src/DisplayModels.py index 90ba2fd64..3fd9b2f39 100644 --- a/src/DisplayModels.py +++ b/src/DisplayModels.py @@ -197,87 +197,6 @@ class BaseModel(gtk.GenericTreeModel): def on_iter_parent(self, node): '''returns the parent of this node''' return None - -#------------------------------------------------------------------------- -# -# ChildModel -# -#------------------------------------------------------------------------- -class ChildModel(gtk.ListStore): - - def __init__(self,child_list,db): - gtk.ListStore.__init__(self,int,str,str,str,str,str,str,str,str,str,int,int) - self.db = db - index = 1 - for child_handle in child_list: - child = db.get_person_from_handle(child_handle) - self.append(row=[index, - child.get_gramps_id(), - NameDisplay.displayer.display(child), - _GENDER[child.get_gender()], - self.column_birth_day(child), - self.column_death_day(child), - self.column_birth_place(child), - self.column_death_place(child), - child.get_handle(), - child.get_primary_name().get_sort_name(), - self.column_birth_sort(child), - self.column_death_sort(child), - ]) - index += 1 - - def column_birth_day(self,data): - event_ref = data.get_birth_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - return DateHandler.get_date(event) - else: - return u"" - - def column_birth_sort(self,data): - event_ref = data.get_birth_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - return event.get_date_object().get_sort_value() - else: - return 0 - - def column_death_day(self,data): - event_ref = data.get_death_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - return DateHandler.get_date(event) - else: - return u"" - - def column_death_sort(self,data): - event_ref = data.get_death_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - return event.get_date_object().get_sort_value() - else: - return 0 - - def column_birth_place(self,data): - event_ref = data.get_birth_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - if event: - place_handle = event.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() - return u"" - - def column_death_place(self,data): - event_ref = data.get_death_ref() - if event_ref and event_ref.ref: - event = self.db.get_event_from_handle(event_ref.ref) - if event: - place_handle = event.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() - return u"" - #------------------------------------------------------------------------- # diff --git a/src/DisplayTabs.py b/src/DisplayTabs.py new file mode 100644 index 000000000..cfe39e80f --- /dev/null +++ b/src/DisplayTabs.py @@ -0,0 +1,205 @@ +import gtk +import DateHandler +import NameDisplay +import RelLib +import Utils +import ToolTips +import GrampsLocale + +_GENDER = [ _(u'female'), _(u'male'), _(u'unknown') ] + +#------------------------------------------------------------------------- +# +# Localized constants +# +#------------------------------------------------------------------------- +_codeset = GrampsLocale.codeset + +def sfunc(a,b): + return locale.strcoll(a[0],b[0]) + +class EmbeddedList(gtk.HBox): + + _HANDLE_COL = 8 + + def __init__(self, db, build_model): + gtk.HBox.__init__(self) + self.build_model = build_model + + self.tree = gtk.TreeView() + self.tree.set_rules_hint(True) + scroll = gtk.ScrolledWindow() + scroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) + scroll.add_with_viewport(self.tree) + self.pack_start(scroll,True) + self.columns = [] + self.db = db + self.build_columns() + self.rebuild() + self.show_all() + + def set_label(self): + return + + def get_data(self): + return [] + + def column_order(self): + return [] + + def build_columns(self): + for column in self.columns: + self.tree.remove_column(column) + self.columns = [] + + #for pair in self.parent.db.get_child_column_order(): + + for pair in self.column_order(): + if not pair[0]: + continue + name = self.column_names[pair[1]][0] + column = gtk.TreeViewColumn(name, gtk.CellRendererText(), + text=pair[1]) + column.set_resizable(True) + column.set_min_width(40) + column.set_sort_column_id(self.column_names[pair[1]][1]) + self.columns.append(column) + self.tree.append_column(column) + + def rebuild(self): + self.model = self.build_model(self.get_data(),self.db) + self.tree.set_model(self.model) + self.set_label() + + def get_tab_widget(self): + return gtk.Label('UNDEFINED') + + +#------------------------------------------------------------------------- +# +# ChildModel +# +#------------------------------------------------------------------------- +class ChildModel(gtk.ListStore): + + def __init__(self,child_list,db): + gtk.ListStore.__init__(self,int,str,str,str,str,str,str,str,str,str,int,int) + self.db = db + index = 1 + for child_handle in child_list: + child = db.get_person_from_handle(child_handle) + self.append(row=[index, + child.get_gramps_id(), + NameDisplay.displayer.display(child), + _GENDER[child.get_gender()], + self.column_birth_day(child), + self.column_death_day(child), + self.column_birth_place(child), + self.column_death_place(child), + child.get_handle(), + child.get_primary_name().get_sort_name(), + self.column_birth_sort(child), + self.column_death_sort(child), + ]) + index += 1 + + def column_birth_day(self,data): + event_ref = data.get_birth_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + return DateHandler.get_date(event) + else: + return u"" + + def column_birth_sort(self,data): + event_ref = data.get_birth_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + return event.get_date_object().get_sort_value() + else: + return 0 + + def column_death_day(self,data): + event_ref = data.get_death_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + return DateHandler.get_date(event) + else: + return u"" + + def column_death_sort(self,data): + event_ref = data.get_death_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + return event.get_date_object().get_sort_value() + else: + return 0 + + def column_birth_place(self,data): + event_ref = data.get_birth_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + if event: + place_handle = event.get_place_handle() + if place_handle: + return self.db.get_place_from_handle(place_handle).get_title() + return u"" + + def column_death_place(self,data): + event_ref = data.get_death_ref() + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + if event: + place_handle = event.get_place_handle() + if place_handle: + return self.db.get_place_from_handle(place_handle).get_title() + return u"" + +def type_name(event): + t = event.get_type() + if t[0] == RelLib.Event.CUSTOM: + return t[1] + else: + return Utils.family_events[t[0]] + +def place_of(event): + t = event.get_place_handle() + return t + +#------------------------------------------------------------------------- +# +# EventRefModel +# +#------------------------------------------------------------------------- + +class EventRefModel(gtk.ListStore): + + def __init__(self,event_list,db): + gtk.ListStore.__init__(self,str,str,str,str,str,str) + self.db = db + index = 1 + for event_ref in event_list: + event = db.get_event_from_handle(event_ref.ref) + self.append(row=[ + event.get_description(), + event.get_gramps_id(), + type_name(event), + self.column_date(event_ref), + self.column_place(event_ref), + event.get_cause(), + ]) + index += 1 + + def column_date(self,event_ref): + event = self.db.get_event_from_handle(event_ref.ref) + return DateHandler.get_date(event) + + def column_place(self,event_ref): + if event_ref and event_ref.ref: + event = self.db.get_event_from_handle(event_ref.ref) + if event: + place_handle = event.get_place_handle() + if place_handle: + return self.db.get_place_from_handle(place_handle).get_title() + return u"" + diff --git a/src/EditFamily.py b/src/EditFamily.py index f83bd63dd..182b93cc3 100644 --- a/src/EditFamily.py +++ b/src/EditFamily.py @@ -27,8 +27,8 @@ #------------------------------------------------------------------------- import cPickle as pickle import gc -from gettext import gettext as _ import sys +from gettext import gettext as _ import logging log = logging.getLogger(".") @@ -57,13 +57,86 @@ import GrampsDisplay import RelLib import ListModel import ReportUtils +import DisplayTabs from DdTargets import DdTargets from WindowUtils import GladeIf +class EventEmbedList(DisplayTabs.EmbeddedList): + + column_names = [ + (_('Description'),0), + (_('ID'),1), + (_('Type'),2), + (_('Date'),3), + (_('Place'),4), + (_('Cause'),5), + ] + + def __init__(self,db,family): + self.family = family + self.hbox = gtk.HBox() + self.label = gtk.Label(_('Events')) + self.hbox.show_all() + + DisplayTabs.EmbeddedList.__init__(self, db, DisplayTabs.EventRefModel) + + def get_data(self): + return self.family.get_event_ref_list() + + def column_order(self): + return ((1,0),(1,1),(1,2),(1,3),(1,4),(1,5)) + + def set_label(self): + if len(self.get_data()): + self.label.set_text("%s" % _('Events')) + self.label.set_use_markup(True) + else: + self.label.set_text(_('Events')) + + def get_tab_widget(self): + return self.label + +class ChildEmbedList(DisplayTabs.EmbeddedList): + + column_names = [ + (_('#'),0) , + (_('ID'),1) , + (_('Name'),9), + (_('Gender'),3), + (_('Birth Date'),10), + (_('Death Date'),11), + (_('Birth Place'),6), + (_('Death Place'),7), + ] + + def __init__(self,db,family): + self.family = family + self.hbox = gtk.HBox() + self.label = gtk.Label(_('Children')) + self.hbox.show_all() + + DisplayTabs.EmbeddedList.__init__(self, db, DisplayTabs.ChildModel) + + def get_data(self): + return self.family.get_child_handle_list() + + def column_order(self): + return self.db.get_child_column_order() + + def set_label(self): + if len(self.get_data()): + self.label.set_text("%s" % _('Children')) + self.label.set_use_markup(True) + else: + self.label.set_text(_('Children')) + + def get_tab_widget(self): + return self.label + #------------------------------------------------------------------------- # -# EditPlace +# EditFamily # #------------------------------------------------------------------------- class EditFamily(DisplayState.ManagedWindow): @@ -105,19 +178,47 @@ class EditFamily(DisplayState.ManagedWindow): self.gid = self.top.get_widget('gid') self.reltype= self.top.get_widget('relationship_type') + self.mbutton= self.top.get_widget('mbutton') + self.fbutton= self.top.get_widget('fbutton') + self.ok = self.top.get_widget('ok') self.cancel = self.top.get_widget('cancel') + self.vbox = self.top.get_widget('vbox') + + self.notebook = gtk.Notebook() + self.notebook.show() + + self.vbox.pack_start(self.notebook,True) + + self.child_list = self.top.get_widget('child_list') self.cancel.connect('clicked', self.close_window) def load_data(self): self.load_parent(self.family.get_father_handle(),self.fname, - self.fbirth, self.fdeath) + self.fbirth, self.fdeath, self.fbutton) self.load_parent(self.family.get_mother_handle(),self.mname, - self.mbirth, self.mdeath) + self.mbirth, self.mdeath, self.mbutton) - def load_parent(self,handle,name_obj,birth_obj,death_obj): - if handle: + self.child_list = ChildEmbedList(self.dbstate.db, self.family) + self.event_list = EventEmbedList(self.dbstate.db, self.family) + + self.notebook.insert_page(self.child_list) + self.notebook.set_tab_label(self.child_list,self.child_list.get_tab_widget()) + + self.notebook.insert_page(self.event_list) + self.notebook.set_tab_label(self.event_list,self.event_list.get_tab_widget()) + + self.gid.set_text(self.family.get_gramps_id()) + + + def load_parent(self,handle,name_obj,birth_obj,death_obj,btn_obj): + + is_used = handle != None + + btn_obj.remove(btn_obj.get_children()[0]) + + if is_used: db = self.dbstate.db person = db.get_person_from_handle(handle) name = "%s [%s]" % (NameDisplay.displayer.display(person), @@ -125,11 +226,21 @@ class EditFamily(DisplayState.ManagedWindow): data = ReportUtils.get_birth_death_strings(db,person) birth = data[0] death = data[4] + + del_image = gtk.Image() + del_image.show() + del_image.set_from_stock(gtk.STOCK_REMOVE,gtk.ICON_SIZE_BUTTON) + btn_obj.add(del_image) else: name = "" birth = "" death = "" + add_image = gtk.Image() + add_image.show() + add_image.set_from_stock(gtk.STOCK_ADD,gtk.ICON_SIZE_BUTTON) + btn_obj.add(add_image) + name_obj.set_text(name) birth_obj.set_text(birth) death_obj.set_text(death) diff --git a/src/gramps.glade b/src/gramps.glade index 2f91fae76..341ed41b9 100644 --- a/src/gramps.glade +++ b/src/gramps.glade @@ -21,6 +21,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -790,6 +791,7 @@ True GTK_SELECTION_SINGLE GTK_ORIENTATION_VERTICAL + False @@ -1295,6 +1297,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -1458,6 +1461,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -1650,6 +1654,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -1784,8 +1789,8 @@ GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False - 600 - 450 + 700 + 500 True False gramps.png @@ -1795,6 +1800,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -1863,7 +1869,7 @@ - + 6 True False @@ -1895,448 +1901,539 @@ - - 6 + True - 7 - 8 - False - 6 - 12 + True + 0 - - True - Name: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Birth: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - Death: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - fill - - - - - - - True - Name: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 1 - 2 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - Birth: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 2 - 3 - fill - - - - - - - True - Death: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - 7 - 2 - 3 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - 7 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - 7 - 1 - 2 - - - - - - + + 6 True + 4 + 4 False - 6 + 6 + 12 - + True - Remove selected event reference - True - GTK_RELIEF_NORMAL - True - + Name: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + Birth: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + Death: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 3 + 4 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 3 + 4 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + + + + + + + True + False + 6 - + True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 + Remove selected event reference + True + GTK_RELIEF_NORMAL + True + + + + + True + gtk-add + 4 + 0.5 + 0.5 + 0 + 0 + + + + 0 + False + False + - 0 - False - False + 3 + 4 + 1 + 4 + fill + fill + + + + + + True + <b>Father</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 4 + 0 + 1 + fill + - 3 - 4 - 1 - 4 - fill - fill + 0 + True + True - + + 6 True - <b>Father</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 4 - 0 - 1 - fill - - - + 4 + 4 + False + 6 + 12 - - - True - <b>Mother</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 + + + True + Name: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + Birth: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + Death: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 3 + 4 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 3 + 4 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + + + + + + + True + <b>Mother</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 4 + 0 + 1 + fill + + + + + + + True + False + 6 + + + + True + Remove selected event reference + True + GTK_RELIEF_NORMAL + True + + + + + True + gtk-add + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 3 + 4 + 1 + 4 + fill + fill + + - 4 - 8 - 0 - 1 - fill - + 0 + True + True + + + 0 + False + True + + + + + + 6 + True + 3 + 8 + False + 6 + 12 @@ -2359,57 +2456,13 @@ 0 8 - 4 - 5 + 0 + 1 fill - - - True - False - 6 - - - - True - Remove selected event reference - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 7 - 8 - 1 - 4 - fill - fill - - - True @@ -2432,8 +2485,8 @@ 1 2 - 5 - 6 + 1 + 2 fill @@ -2460,8 +2513,8 @@ 1 2 - 6 - 7 + 2 + 3 fill @@ -2477,8 +2530,8 @@ 2 8 - 6 - 7 + 2 + 3 fill fill @@ -2499,9 +2552,8 @@ 2 8 - 5 - 6 - fill + 1 + 2 @@ -2512,1569 +2564,6 @@ True - - - - True - True - True - True - GTK_POS_TOP - False - False - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Select an existing event from the database and link this marriage to it - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Edit the selected event reference - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Remove selected event reference - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Children - False - False - GTK_JUSTIFY_RIGHT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Add new event to the database and link this marriage to it - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Select an existing event from the database and link this marriage to it - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Edit the selected event reference - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Remove selected event reference - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Events - False - False - GTK_JUSTIFY_RIGHT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - False - 6 - - - - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Create a new attribute for this marriage - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Delete the selected attribute - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Attributes - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - False - 0 - - - - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - True - GTK_JUSTIFY_LEFT - GTK_WRAP_WORD - True - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - 0 - True - True - - - - - - 12 - True - 2 - 3 - False - 12 - 24 - - - - True - <b>Format</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - Multiple spaces, tabs, and single line breaks are replaced with single spaces. Two consecutive line breaks mark a new paragraph. - True - _Flowed - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 1 - 2 - 1 - 2 - - - - - - - - True - Formatting is preserved, except for the leading whitespace. Multiple spaces, tabs, and all line breaks are respected. - True - _Preformatted - True - GTK_RELIEF_NORMAL - True - False - False - True - mar_flowed - - - 2 - 3 - 1 - 2 - - - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Notes - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - False - 6 - - - - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - Sources - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - GTK_SELECTION_SINGLE - GTK_ORIENTATION_VERTICAL - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Add a new media object to the database and place it in this gallery - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Select an existing media object from the database and place it in this gallery - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Edit the properties of the selected objects - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Remove selected object from this gallery only - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - False - False - - - - - - True - Gallery - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - False - 0 - - - - 12 - True - 4 - 4 - False - 6 - 12 - - - - True - <b>Sealed to spouse</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 4 - 0 - 1 - fill - - - - - - - True - Date: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Temple: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - Place: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - True - Sources... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 2 - 3 - fill - - - - - - - True - True - Note... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 3 - 4 - fill - - - - - - - True - False - True - True - - - 2 - 3 - 3 - 4 - fill - fill - - - - - - True - False - True - - - 3 - 4 - 1 - 2 - fill - fill - - - - - - True - False - True - - - 2 - 3 - 2 - 3 - fill - fill - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 1 - 2 - fill - fill - - - - - 0 - False - True - - - - - False - True - - - - - - True - False - 0 - - - - True - gtk-file - 4 - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - LDS - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - 0 - True - True - - 0 @@ -4103,6 +2592,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -5986,6 +4476,7 @@ True GTK_SELECTION_SINGLE GTK_ORIENTATION_VERTICAL + False @@ -6712,6 +5203,7 @@ GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -8576,6 +7068,7 @@ Text Beside Icons GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -9322,6 +7815,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -9597,6 +8091,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -9731,6 +8226,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -10255,6 +8751,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -10482,6 +8979,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -12035,6 +10533,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -12330,6 +10829,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -13842,6 +12342,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15155,6 +13656,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15298,6 +13800,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15491,6 +13994,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15647,6 +14151,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15803,6 +14308,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -15946,6 +14452,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -16089,6 +14596,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -16413,6 +14921,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -17548,6 +16057,7 @@ Very High True GTK_SELECTION_SINGLE GTK_ORIENTATION_VERTICAL + False @@ -17793,6 +16303,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -18520,6 +17031,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -19027,6 +17539,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -20054,6 +18567,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -20336,6 +18850,7 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False True @@ -21668,6 +20183,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_NORMAL GDK_GRAVITY_NORTH_WEST True + False False @@ -21907,6 +20423,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_NORMAL GDK_GRAVITY_NORTH_WEST True + False @@ -22039,6 +20556,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -22744,6 +21262,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -22943,6 +21462,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False True @@ -23033,6 +21553,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -24211,6 +22732,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -24701,6 +23223,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -25246,6 +23769,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False True @@ -25686,6 +24210,7 @@ Family name Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True + False False @@ -27039,6 +25564,7 @@ Family name Given name True GTK_SELECTION_SINGLE GTK_ORIENTATION_VERTICAL + False