* src/AutoComp.py (StandardCustomSelector.__init__): Compare
active_key to None. * src/gramps.glade (marriageDialog): Remove displayed strings from the Sttributes tab. * src/Marriage.py: Delegate attribute handling to ListBox. * src/ListBox.py (AttrListBox): Support both personal and family attributes. svn: r4815
This commit is contained in:
		@@ -142,7 +142,7 @@ class StandardCustomSelector:
 | 
			
		||||
            self.selector.set_text_column(1)
 | 
			
		||||
        else:
 | 
			
		||||
            self.selector = gtk.ComboBoxEntry(self.store,1)
 | 
			
		||||
        if self.active_key:
 | 
			
		||||
        if self.active_key != None:
 | 
			
		||||
            self.selector.set_active(self.active_index)
 | 
			
		||||
 | 
			
		||||
        # make autocompletion work
 | 
			
		||||
 
 | 
			
		||||
@@ -217,11 +217,16 @@ class ReorderListBox(ListBox):
 | 
			
		||||
 | 
			
		||||
class AttrListBox(ReorderListBox):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, parent, person, obj, label, button_list):
 | 
			
		||||
    def __init__(self, parent, primary, obj, label, button_list):
 | 
			
		||||
 | 
			
		||||
        custom_str = Utils.personal_attributes[RelLib.Attribute.CUSTOM]
 | 
			
		||||
        if primary.__class__.__name__ == 'Person':
 | 
			
		||||
            self.attr_dict = Utils.personal_attributes
 | 
			
		||||
        elif primary.__class__.__name__ == 'Family':
 | 
			
		||||
            self.attr_dict = Utils.family_attributes
 | 
			
		||||
 | 
			
		||||
        custom_str = self.attr_dict[RelLib.Attribute.CUSTOM]
 | 
			
		||||
        attrlist = filter(lambda x: x != custom_str,
 | 
			
		||||
                          Utils.personal_attributes.values())
 | 
			
		||||
                          self.attr_dict.values())
 | 
			
		||||
        attrlist.sort(locale.strcoll)
 | 
			
		||||
 | 
			
		||||
        titles = [
 | 
			
		||||
@@ -232,12 +237,12 @@ class AttrListBox(ReorderListBox):
 | 
			
		||||
            (_('Note'),      NOSORT,   50,   TOGGLE, None,     None),
 | 
			
		||||
            ]
 | 
			
		||||
 | 
			
		||||
        self.data = person.get_attribute_list()[:]
 | 
			
		||||
        ListBox.__init__(self, parent, person, obj, label,
 | 
			
		||||
        self.data = primary.get_attribute_list()[:]
 | 
			
		||||
        ListBox.__init__(self, parent, primary, obj, label,
 | 
			
		||||
                         button_list, titles)
 | 
			
		||||
 | 
			
		||||
        self.attr_name_map,self.attr_val_map = self.build_maps(
 | 
			
		||||
            RelLib.Attribute.CUSTOM,Utils.personal_attributes)
 | 
			
		||||
            RelLib.Attribute.CUSTOM,self.attr_dict)
 | 
			
		||||
 | 
			
		||||
    def set_type(self,index,value):
 | 
			
		||||
        val = self.attr_name_map.get(value,RelLib.Attribute.CUSTOM)
 | 
			
		||||
@@ -253,7 +258,7 @@ class AttrListBox(ReorderListBox):
 | 
			
		||||
    def add(self,obj):
 | 
			
		||||
        """Brings up the AttributeEditor for a new attribute"""
 | 
			
		||||
        AttrEdit.AttributeEditor(self.parent, None, self.name,
 | 
			
		||||
                                 Utils.personal_attributes,
 | 
			
		||||
                                 self.attr_dict,
 | 
			
		||||
                                 self.edit_callback,self.parent.window)
 | 
			
		||||
 | 
			
		||||
    def update(self,obj):
 | 
			
		||||
@@ -261,7 +266,7 @@ class AttrListBox(ReorderListBox):
 | 
			
		||||
        if node:
 | 
			
		||||
            attr = self.list_model.get_object(node)
 | 
			
		||||
            AttrEdit.AttributeEditor(self.parent, attr, self.name,
 | 
			
		||||
                                     Utils.personal_attributes,
 | 
			
		||||
                                     self.attr_dict,
 | 
			
		||||
                                     self.edit_callback,self.parent.window)
 | 
			
		||||
 | 
			
		||||
    def display_data(self,attr):
 | 
			
		||||
@@ -270,10 +275,10 @@ class AttrListBox(ReorderListBox):
 | 
			
		||||
 | 
			
		||||
        etype = attr.get_type()
 | 
			
		||||
        if etype[0] == RelLib.Attribute.CUSTOM \
 | 
			
		||||
               or not Utils.personal_attributes.has_key(etype[0]):
 | 
			
		||||
               or not self.attr_dict.has_key(etype[0]):
 | 
			
		||||
            name = etype[1]
 | 
			
		||||
        else:
 | 
			
		||||
            name = Utils.personal_attributes[etype[0]]
 | 
			
		||||
            name = self.attr_dict[etype[0]]
 | 
			
		||||
 | 
			
		||||
        return [name, attr.get_value(), has_source, has_note]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -115,23 +115,14 @@ class Marriage:
 | 
			
		||||
            "on_help_marriage_editor" : self.on_help_clicked,
 | 
			
		||||
            "on_up_clicked" : self.on_up_clicked,
 | 
			
		||||
            "on_down_clicked" : self.on_down_clicked,
 | 
			
		||||
            "on_attr_up_clicked" : self.on_attr_up_clicked,
 | 
			
		||||
            "on_attr_down_clicked" : self.on_attr_down_clicked,
 | 
			
		||||
            "on_add_attr_clicked" : self.on_add_attr_clicked,
 | 
			
		||||
            "on_delete_attr_clicked" : self.on_delete_attr_clicked,
 | 
			
		||||
            "on_addphoto_clicked" : self.gallery.on_add_media_clicked,
 | 
			
		||||
            "on_selectphoto_clicked" : self.gallery.on_select_media_clicked,
 | 
			
		||||
            "on_close_marriage_editor" : self.on_close_marriage_editor,
 | 
			
		||||
            #"on_delete_event" : self.on_delete_event,
 | 
			
		||||
            "on_lds_src_clicked" : self.lds_src_clicked,
 | 
			
		||||
            "on_lds_note_clicked" : self.lds_note_clicked,
 | 
			
		||||
            "on_deletephoto_clicked" : self.gallery.on_delete_media_clicked,
 | 
			
		||||
            "on_edit_photo_clicked" : self.gallery.on_edit_media_clicked,
 | 
			
		||||
            "on_edit_properties_clicked": self.gallery.popup_change_description,
 | 
			
		||||
            #"on_marriageAddBtn_clicked" : self.on_add_clicked,
 | 
			
		||||
            #"on_event_update_clicked" : self.on_event_update_clicked,
 | 
			
		||||
            "on_attr_update_clicked" : self.on_update_attr_clicked,
 | 
			
		||||
            #"on_marriageDeleteBtn_clicked" : self.on_delete_clicked,
 | 
			
		||||
            "on_switch_page" : self.on_switch_page
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
@@ -159,11 +150,6 @@ class Marriage:
 | 
			
		||||
        # widgets
 | 
			
		||||
        self.complete = self.get_widget('complete')
 | 
			
		||||
        self.complete.set_sensitive(mode)
 | 
			
		||||
        #self.date_field  = self.get_widget("marriageDate")
 | 
			
		||||
        #self.place_field = self.get_widget("marriagePlace")
 | 
			
		||||
        #self.cause_field = self.get_widget("marriageCause")
 | 
			
		||||
        #self.name_field  = self.get_widget("marriageEventName")
 | 
			
		||||
        #self.descr_field = self.get_widget("marriageDescription")
 | 
			
		||||
        self.type_field  = self.get_widget("marriage_type")
 | 
			
		||||
        self.type_field.set_sensitive(mode)
 | 
			
		||||
        self.notes_field = self.get_widget("marriageNotes")
 | 
			
		||||
@@ -171,16 +157,13 @@ class Marriage:
 | 
			
		||||
        self.gid = self.get_widget("gid")
 | 
			
		||||
        self.gid.set_editable(mode)
 | 
			
		||||
        self.attr_list = self.get_widget("attr_list")
 | 
			
		||||
        self.attr_type = self.get_widget("attr_type")
 | 
			
		||||
        self.attr_value = self.get_widget("attr_value")
 | 
			
		||||
        #self.event_src_field = self.get_widget("event_srcinfo")
 | 
			
		||||
        #self.event_conf_field = self.get_widget("event_conf")
 | 
			
		||||
        event_add_btn = self.get_widget("marriage_add")
 | 
			
		||||
        event_edit_btn = self.get_widget("marriage_edit")
 | 
			
		||||
        event_delete_btn = self.get_widget("marriage_del")
 | 
			
		||||
        event_sel_btn = self.get_widget("marriage_sel")
 | 
			
		||||
        self.attr_src_field = self.get_widget("attr_srcinfo")
 | 
			
		||||
        self.attr_conf_field = self.get_widget("attr_conf")
 | 
			
		||||
        attr_add_btn = self.get_widget("attr_add")
 | 
			
		||||
        attr_edit_btn = self.get_widget("attr_edit")
 | 
			
		||||
        attr_del_btn = self.get_widget("attr_del")
 | 
			
		||||
        self.lds_date = self.get_widget("lds_date")
 | 
			
		||||
        self.lds_date.set_editable(mode)
 | 
			
		||||
        self.lds_date_led = self.get_widget("lds_date_stat")
 | 
			
		||||
@@ -205,7 +188,6 @@ class Marriage:
 | 
			
		||||
        self.preform = self.get_widget("mar_preform")
 | 
			
		||||
        self.preform.set_sensitive(mode)
 | 
			
		||||
 | 
			
		||||
        #self.ereflist = family.get_event_ref_list()[:]
 | 
			
		||||
        self.alist = family.get_attribute_list()[:]
 | 
			
		||||
        self.lists_changed = 0
 | 
			
		||||
 | 
			
		||||
@@ -214,16 +196,6 @@ class Marriage:
 | 
			
		||||
        # set initial data
 | 
			
		||||
        self.gallery.load_images()
 | 
			
		||||
 | 
			
		||||
        #etitles = [(_('Event'),-1,100),(_('Date'),-1,125),(_('Place'),-1,150)]
 | 
			
		||||
        atitles = [(_('Attribute'),-1,150),(_('Value'),-1,150)]
 | 
			
		||||
 | 
			
		||||
        #self.etree = ListModel.ListModel(self.event_list, etitles,
 | 
			
		||||
        #                                 self.on_select_row,
 | 
			
		||||
        #                                 self.on_event_update_clicked)
 | 
			
		||||
        self.atree = ListModel.ListModel(self.attr_list, atitles,
 | 
			
		||||
                                         self.on_attr_list_select_row,
 | 
			
		||||
                                         self.on_update_attr_clicked)
 | 
			
		||||
 | 
			
		||||
        # event display
 | 
			
		||||
        self.event_box = ListBox.EventListBox(
 | 
			
		||||
            self, family, self.event_ref_list, self.events_label,
 | 
			
		||||
@@ -236,6 +208,13 @@ class Marriage:
 | 
			
		||||
 | 
			
		||||
        frel = family.get_relationship()
 | 
			
		||||
        self.type_selector.set_values(frel)
 | 
			
		||||
 | 
			
		||||
        # attribute display
 | 
			
		||||
        self.attr_box = ListBox.AttrListBox(
 | 
			
		||||
            self, family, self.attr_list, self.attr_label,
 | 
			
		||||
            [attr_add_btn,attr_edit_btn,attr_del_btn])
 | 
			
		||||
        self.attr_box.redraw()
 | 
			
		||||
 | 
			
		||||
        self.gid.set_text(family.get_gramps_id())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -286,17 +265,17 @@ class Marriage:
 | 
			
		||||
        #                        self.ev_dest_drag_data_received)
 | 
			
		||||
        #self.event_list.connect('drag_begin', self.ev_drag_begin)
 | 
			
		||||
 | 
			
		||||
        self.attr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
 | 
			
		||||
                                     [DdTargets.FAMILY_ATTRIBUTE.target()],
 | 
			
		||||
                                     gtk.gdk.ACTION_COPY)
 | 
			
		||||
        self.attr_list.drag_source_set(gtk.gdk.BUTTON1_MASK,
 | 
			
		||||
                                       [DdTargets.FAMILY_ATTRIBUTE.target()],
 | 
			
		||||
                                       gtk.gdk.ACTION_COPY)
 | 
			
		||||
        self.attr_list.connect('drag_data_get',
 | 
			
		||||
                               self.at_source_drag_data_get)
 | 
			
		||||
        self.attr_list.connect('drag_data_received',
 | 
			
		||||
                               self.at_dest_drag_data_received)
 | 
			
		||||
        self.attr_list.connect('drag_begin', self.at_drag_begin)
 | 
			
		||||
        #self.attr_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
 | 
			
		||||
        #                             [DdTargets.FAMILY_ATTRIBUTE.target()],
 | 
			
		||||
        #                             gtk.gdk.ACTION_COPY)
 | 
			
		||||
        #self.attr_list.drag_source_set(gtk.gdk.BUTTON1_MASK,
 | 
			
		||||
        #                               [DdTargets.FAMILY_ATTRIBUTE.target()],
 | 
			
		||||
        #                               gtk.gdk.ACTION_COPY)
 | 
			
		||||
        #self.attr_list.connect('drag_data_get',
 | 
			
		||||
        #                       self.at_source_drag_data_get)
 | 
			
		||||
        #self.attr_list.connect('drag_data_received',
 | 
			
		||||
        #                       self.at_dest_drag_data_received)
 | 
			
		||||
        #self.attr_list.connect('drag_begin', self.at_drag_begin)
 | 
			
		||||
 | 
			
		||||
        # set notes data
 | 
			
		||||
        self.notes_buffer = self.notes_field.get_buffer()
 | 
			
		||||
@@ -313,8 +292,6 @@ class Marriage:
 | 
			
		||||
            self.top.get_widget('add_src'), self.top.get_widget('edit_src'),
 | 
			
		||||
            self.top.get_widget('del_src'), self.db.readonly)
 | 
			
		||||
 | 
			
		||||
        #self.redraw_event_list()
 | 
			
		||||
        self.redraw_attr_list()
 | 
			
		||||
        self.add_itself_to_winsmenu()
 | 
			
		||||
        self.top.get_widget('ok').set_sensitive(not self.db.readonly)
 | 
			
		||||
 | 
			
		||||
@@ -536,7 +513,7 @@ class Marriage:
 | 
			
		||||
    def update_lists(self):
 | 
			
		||||
        eref_list = [event_ref for (event_ref,event) in self.event_box.data]
 | 
			
		||||
        self.family.set_event_ref_list(eref_list)
 | 
			
		||||
        self.family.set_attribute_list(self.alist)
 | 
			
		||||
        self.family.set_attribute_list(self.attr_box.data)
 | 
			
		||||
 | 
			
		||||
    def attr_edit_callback(self,attr):
 | 
			
		||||
        self.redraw_attr_list()
 | 
			
		||||
@@ -739,11 +716,6 @@ class Marriage:
 | 
			
		||||
        import EventEdit
 | 
			
		||||
        EventEdit.EventRefEditor(None,None,self.family,self.db,
 | 
			
		||||
                                 self.event_box.edit_callback,self)
 | 
			
		||||
        #name = Utils.family_name(self.family,self.db)
 | 
			
		||||
        #EventEdit.EventRefEditor(None,self.family, self.db,None,self)
 | 
			
		||||
            #self,name, Utils.family_events,
 | 
			
		||||
            #None, None, 0, self.event_edit_callback,
 | 
			
		||||
            #RelLib.Event.MARRIAGE, self.db.readonly)
 | 
			
		||||
 | 
			
		||||
    def on_event_update_clicked(self,obj):
 | 
			
		||||
        import EventEdit
 | 
			
		||||
@@ -863,6 +835,8 @@ class Marriage:
 | 
			
		||||
    def on_switch_page(self,obj,a,page):
 | 
			
		||||
        if page == 0:
 | 
			
		||||
            self.event_box.redraw()
 | 
			
		||||
        elif page == 1:
 | 
			
		||||
            self.attr_box.redraw()
 | 
			
		||||
        text = unicode(self.notes_buffer.get_text(self.notes_buffer.get_start_iter(),
 | 
			
		||||
                                self.notes_buffer.get_end_iter(),False))
 | 
			
		||||
        if text:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										494
									
								
								src/gramps.glade
									
									
									
									
									
								
							
							
						
						
									
										494
									
								
								src/gramps.glade
									
									
									
									
									
								
							@@ -13224,396 +13224,29 @@ tories</b></property>
 | 
			
		||||
	      </child>
 | 
			
		||||
 | 
			
		||||
	      <child>
 | 
			
		||||
		<widget class="GtkVBox" id="vbox34">
 | 
			
		||||
		<widget class="GtkHBox" id="hbox21">
 | 
			
		||||
		  <property name="border_width">6</property>
 | 
			
		||||
		  <property name="visible">True</property>
 | 
			
		||||
		  <property name="homogeneous">False</property>
 | 
			
		||||
		  <property name="spacing">0</property>
 | 
			
		||||
		  <property name="spacing">6</property>
 | 
			
		||||
 | 
			
		||||
		  <child>
 | 
			
		||||
		    <widget class="GtkTable" id="table13">
 | 
			
		||||
		      <property name="border_width">12</property>
 | 
			
		||||
		    <widget class="GtkScrolledWindow" id="scrolledwindow23">
 | 
			
		||||
		      <property name="visible">True</property>
 | 
			
		||||
		      <property name="n_rows">6</property>
 | 
			
		||||
		      <property name="n_columns">5</property>
 | 
			
		||||
		      <property name="homogeneous">False</property>
 | 
			
		||||
		      <property name="row_spacing">6</property>
 | 
			
		||||
		      <property name="column_spacing">12</property>
 | 
			
		||||
		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
 | 
			
		||||
		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
 | 
			
		||||
		      <property name="shadow_type">GTK_SHADOW_IN</property>
 | 
			
		||||
		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label220">
 | 
			
		||||
			<widget class="GtkTreeView" id="attr_list">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes">Value</property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			  <property name="can_focus">True</property>
 | 
			
		||||
			  <property name="headers_visible">True</property>
 | 
			
		||||
			  <property name="rules_hint">False</property>
 | 
			
		||||
			  <property name="reorderable">False</property>
 | 
			
		||||
			  <property name="enable_search">True</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">1</property>
 | 
			
		||||
			  <property name="right_attach">2</property>
 | 
			
		||||
			  <property name="top_attach">2</property>
 | 
			
		||||
			  <property name="bottom_attach">3</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label243">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes">Confidence:</property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">3</property>
 | 
			
		||||
			  <property name="right_attach">4</property>
 | 
			
		||||
			  <property name="top_attach">5</property>
 | 
			
		||||
			  <property name="bottom_attach">6</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label252">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes">Name:</property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">1</property>
 | 
			
		||||
			  <property name="right_attach">2</property>
 | 
			
		||||
			  <property name="top_attach">5</property>
 | 
			
		||||
			  <property name="bottom_attach">6</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label253">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes">Type:</property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</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="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label222">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"><b>Primary source</b></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">True</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">0</property>
 | 
			
		||||
			  <property name="right_attach">5</property>
 | 
			
		||||
			  <property name="top_attach">4</property>
 | 
			
		||||
			  <property name="bottom_attach">5</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="label251">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"><b>Attributes</b></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">True</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">0</property>
 | 
			
		||||
			  <property name="right_attach">5</property>
 | 
			
		||||
			  <property name="top_attach">0</property>
 | 
			
		||||
			  <property name="bottom_attach">1</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="attr_value">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">2</property>
 | 
			
		||||
			  <property name="right_attach">5</property>
 | 
			
		||||
			  <property name="top_attach">2</property>
 | 
			
		||||
			  <property name="bottom_attach">3</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="attr_srcinfo">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">2</property>
 | 
			
		||||
			  <property name="right_attach">3</property>
 | 
			
		||||
			  <property name="top_attach">5</property>
 | 
			
		||||
			  <property name="bottom_attach">6</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="attr_conf">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_CENTER</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">4</property>
 | 
			
		||||
			  <property name="right_attach">5</property>
 | 
			
		||||
			  <property name="top_attach">5</property>
 | 
			
		||||
			  <property name="bottom_attach">6</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkLabel" id="attr_type">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="label" translatable="yes"></property>
 | 
			
		||||
			  <property name="use_underline">False</property>
 | 
			
		||||
			  <property name="use_markup">False</property>
 | 
			
		||||
			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 | 
			
		||||
			  <property name="wrap">False</property>
 | 
			
		||||
			  <property name="selectable">False</property>
 | 
			
		||||
			  <property name="xalign">0</property>
 | 
			
		||||
			  <property name="yalign">0.5</property>
 | 
			
		||||
			  <property name="xpad">0</property>
 | 
			
		||||
			  <property name="ypad">0</property>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="left_attach">2</property>
 | 
			
		||||
			  <property name="right_attach">5</property>
 | 
			
		||||
			  <property name="top_attach">1</property>
 | 
			
		||||
			  <property name="bottom_attach">2</property>
 | 
			
		||||
			  <property name="x_options">fill</property>
 | 
			
		||||
			  <property name="y_options"></property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
		    </widget>
 | 
			
		||||
		    <packing>
 | 
			
		||||
		      <property name="padding">0</property>
 | 
			
		||||
		      <property name="expand">False</property>
 | 
			
		||||
		      <property name="fill">True</property>
 | 
			
		||||
		    </packing>
 | 
			
		||||
		  </child>
 | 
			
		||||
 | 
			
		||||
		  <child>
 | 
			
		||||
		    <widget class="GtkHBox" id="hbox21">
 | 
			
		||||
		      <property name="border_width">6</property>
 | 
			
		||||
		      <property name="visible">True</property>
 | 
			
		||||
		      <property name="homogeneous">False</property>
 | 
			
		||||
		      <property name="spacing">6</property>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkScrolledWindow" id="scrolledwindow23">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
 | 
			
		||||
			  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
 | 
			
		||||
			  <property name="shadow_type">GTK_SHADOW_IN</property>
 | 
			
		||||
			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkTreeView" id="attr_list">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="can_focus">True</property>
 | 
			
		||||
			      <property name="headers_visible">True</property>
 | 
			
		||||
			      <property name="rules_hint">False</property>
 | 
			
		||||
			      <property name="reorderable">False</property>
 | 
			
		||||
			      <property name="enable_search">True</property>
 | 
			
		||||
			    </widget>
 | 
			
		||||
			  </child>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="padding">0</property>
 | 
			
		||||
			  <property name="expand">True</property>
 | 
			
		||||
			  <property name="fill">True</property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkVBox" id="vbox40">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="homogeneous">False</property>
 | 
			
		||||
			  <property name="spacing">6</property>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkButton" id="attr_add">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="tooltip" translatable="yes">Create a new attribute for this marriage</property>
 | 
			
		||||
			      <property name="can_focus">True</property>
 | 
			
		||||
			      <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			      <property name="focus_on_click">True</property>
 | 
			
		||||
			      <signal name="clicked" handler="on_add_attr_clicked" object="attr_list"/>
 | 
			
		||||
 | 
			
		||||
			      <child>
 | 
			
		||||
				<widget class="GtkImage" id="image2299">
 | 
			
		||||
				  <property name="visible">True</property>
 | 
			
		||||
				  <property name="stock">gtk-add</property>
 | 
			
		||||
				  <property name="icon_size">4</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>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkButton" id="button118">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="can_focus">True</property>
 | 
			
		||||
			      <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			      <property name="focus_on_click">True</property>
 | 
			
		||||
			      <signal name="clicked" handler="on_attr_update_clicked" last_modification_time="Thu, 08 May 2003 17:12:07 GMT"/>
 | 
			
		||||
 | 
			
		||||
			      <child>
 | 
			
		||||
				<widget class="GtkImage" id="image2300">
 | 
			
		||||
				  <property name="visible">True</property>
 | 
			
		||||
				  <property name="pixbuf">edit_sm.png</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>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkButton" id="attr_del">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="tooltip" translatable="yes">Delete the selected attribute</property>
 | 
			
		||||
			      <property name="can_focus">True</property>
 | 
			
		||||
			      <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			      <property name="focus_on_click">True</property>
 | 
			
		||||
			      <signal name="clicked" handler="on_delete_attr_clicked" object="attr_list"/>
 | 
			
		||||
 | 
			
		||||
			      <child>
 | 
			
		||||
				<widget class="GtkImage" id="image2301">
 | 
			
		||||
				  <property name="visible">True</property>
 | 
			
		||||
				  <property name="stock">gtk-remove</property>
 | 
			
		||||
				  <property name="icon_size">4</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>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <placeholder/>
 | 
			
		||||
			  </child>
 | 
			
		||||
			</widget>
 | 
			
		||||
			<packing>
 | 
			
		||||
			  <property name="padding">0</property>
 | 
			
		||||
			  <property name="expand">False</property>
 | 
			
		||||
			  <property name="fill">True</property>
 | 
			
		||||
			</packing>
 | 
			
		||||
		      </child>
 | 
			
		||||
		    </widget>
 | 
			
		||||
		    <packing>
 | 
			
		||||
@@ -13622,6 +13255,105 @@ tories</b></property>
 | 
			
		||||
		      <property name="fill">True</property>
 | 
			
		||||
		    </packing>
 | 
			
		||||
		  </child>
 | 
			
		||||
 | 
			
		||||
		  <child>
 | 
			
		||||
		    <widget class="GtkVBox" id="vbox40">
 | 
			
		||||
		      <property name="visible">True</property>
 | 
			
		||||
		      <property name="homogeneous">False</property>
 | 
			
		||||
		      <property name="spacing">6</property>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkButton" id="attr_add">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="tooltip" translatable="yes">Create a new attribute for this marriage</property>
 | 
			
		||||
			  <property name="can_focus">True</property>
 | 
			
		||||
			  <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			  <property name="focus_on_click">True</property>
 | 
			
		||||
			  <signal name="clicked" handler="on_add_attr_clicked" object="attr_list"/>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkImage" id="image2299">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="stock">gtk-add</property>
 | 
			
		||||
			      <property name="icon_size">4</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>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkButton" id="attr_edit">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="can_focus">True</property>
 | 
			
		||||
			  <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			  <property name="focus_on_click">True</property>
 | 
			
		||||
			  <signal name="clicked" handler="on_attr_update_clicked" last_modification_time="Thu, 08 May 2003 17:12:07 GMT"/>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkImage" id="image2300">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="pixbuf">edit_sm.png</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>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<widget class="GtkButton" id="attr_del">
 | 
			
		||||
			  <property name="visible">True</property>
 | 
			
		||||
			  <property name="tooltip" translatable="yes">Delete the selected attribute</property>
 | 
			
		||||
			  <property name="can_focus">True</property>
 | 
			
		||||
			  <property name="relief">GTK_RELIEF_NORMAL</property>
 | 
			
		||||
			  <property name="focus_on_click">True</property>
 | 
			
		||||
			  <signal name="clicked" handler="on_delete_attr_clicked" object="attr_list"/>
 | 
			
		||||
 | 
			
		||||
			  <child>
 | 
			
		||||
			    <widget class="GtkImage" id="image2301">
 | 
			
		||||
			      <property name="visible">True</property>
 | 
			
		||||
			      <property name="stock">gtk-remove</property>
 | 
			
		||||
			      <property name="icon_size">4</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>
 | 
			
		||||
 | 
			
		||||
		      <child>
 | 
			
		||||
			<placeholder/>
 | 
			
		||||
		      </child>
 | 
			
		||||
		    </widget>
 | 
			
		||||
		    <packing>
 | 
			
		||||
		      <property name="padding">0</property>
 | 
			
		||||
		      <property name="expand">False</property>
 | 
			
		||||
		      <property name="fill">True</property>
 | 
			
		||||
		    </packing>
 | 
			
		||||
		  </child>
 | 
			
		||||
		</widget>
 | 
			
		||||
		<packing>
 | 
			
		||||
		  <property name="tab_expand">False</property>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user