Added an Edit family button to edit first family
svn: r11520
This commit is contained in:
parent
3307c1a1e9
commit
b206ca7cda
@ -1214,12 +1214,15 @@ class DataEntryGramplet(Gramplet):
|
|||||||
rows = gtk.VBox()
|
rows = gtk.VBox()
|
||||||
self.dirty = False
|
self.dirty = False
|
||||||
self.dirty_person = None
|
self.dirty_person = None
|
||||||
|
self.dirty_family = None
|
||||||
self.de_widgets = {}
|
self.de_widgets = {}
|
||||||
for items in [("Active person", _("Active person"), None, True, self.edit_person, False, 0),
|
for items in [("Active person", _("Active person"), None, True,
|
||||||
("APName", _("Surname, Given"), None, False, None, True, 0),
|
[("Edit person", "", self.edit_person), ("Edit family", "Family:", self.edit_family)],
|
||||||
("APGender", _("Gender"), [_("female"), _("male"), _("unknown")], False, None, True, 2),
|
False, 0),
|
||||||
("APBirth", _("Birth"), None, False, None, True, 0),
|
("APName", _("Surname, Given"), None, False, [], True, 0),
|
||||||
("APDeath", _("Death"), None, False, None, True, 0)
|
("APGender", _("Gender"), [_("female"), _("male"), _("unknown")], False, [], True, 2),
|
||||||
|
("APBirth", _("Birth"), None, False, [], True, 0),
|
||||||
|
("APDeath", _("Death"), None, False, [], True, 0)
|
||||||
]:
|
]:
|
||||||
pos, text, choices, readonly, callback, dirty, default = items
|
pos, text, choices, readonly, callback, dirty, default = items
|
||||||
row = self.make_row(pos, text, choices, readonly, callback, dirty, default)
|
row = self.make_row(pos, text, choices, readonly, callback, dirty, default)
|
||||||
@ -1267,9 +1270,12 @@ class DataEntryGramplet(Gramplet):
|
|||||||
def main(self): # return false finishes
|
def main(self): # return false finishes
|
||||||
if self.dirty:
|
if self.dirty:
|
||||||
return
|
return
|
||||||
|
self.de_widgets["Active person:Edit family"].hide()
|
||||||
|
self.de_widgets["Active person:Edit family:Label"].hide()
|
||||||
active_person = self.dbstate.get_active_person()
|
active_person = self.dbstate.get_active_person()
|
||||||
self.dirty_person = active_person
|
self.dirty_person = active_person
|
||||||
if active_person:
|
if active_person:
|
||||||
|
self.de_widgets["Active person:Edit person"].show()
|
||||||
# Fill in current person edits:
|
# Fill in current person edits:
|
||||||
name = name_displayer.display(active_person)
|
name = name_displayer.display(active_person)
|
||||||
self.de_widgets["Active person"].set_text("<i>%s</i> " % name)
|
self.de_widgets["Active person"].set_text("<i>%s</i> " % name)
|
||||||
@ -1307,8 +1313,14 @@ class DataEntryGramplet(Gramplet):
|
|||||||
if place_text:
|
if place_text:
|
||||||
death_text += _("in") + " " + place_text
|
death_text += _("in") + " " + place_text
|
||||||
self.de_widgets["APDeath"].set_text(death_text)
|
self.de_widgets["APDeath"].set_text(death_text)
|
||||||
|
family_list = active_person.get_family_handle_list()
|
||||||
|
if len(family_list) > 0:
|
||||||
|
self.dirty_family = self.dbstate.db.get_family_from_handle(family_list[0])
|
||||||
|
self.de_widgets["Active person:Edit family"].show()
|
||||||
|
self.de_widgets["Active person:Edit family:Label"].show()
|
||||||
else:
|
else:
|
||||||
self.clear_data_edit(None)
|
self.clear_data_edit(None)
|
||||||
|
self.de_widgets["Active person:Edit person"].hide()
|
||||||
# Add options for adding:
|
# Add options for adding:
|
||||||
self.reset_add_type()
|
self.reset_add_type()
|
||||||
self.dirty = False
|
self.dirty = False
|
||||||
@ -1328,7 +1340,7 @@ class DataEntryGramplet(Gramplet):
|
|||||||
self.de_widgets["NPRelation"].append_text(add_type)
|
self.de_widgets["NPRelation"].append_text(add_type)
|
||||||
self.de_widgets["NPRelation"].set_active(self.NO_REL)
|
self.de_widgets["NPRelation"].set_active(self.NO_REL)
|
||||||
|
|
||||||
def make_row(self, pos, text, choices=None, readonly=False, callback=None,
|
def make_row(self, pos, text, choices=None, readonly=False, callback_list=[],
|
||||||
mark_dirty=False, default=0):
|
mark_dirty=False, default=0):
|
||||||
import gtk
|
import gtk
|
||||||
# Data Entry: Active Person
|
# Data Entry: Active Person
|
||||||
@ -1365,7 +1377,11 @@ class DataEntryGramplet(Gramplet):
|
|||||||
self.de_widgets[pos].connect("changed", self.mark_dirty)
|
self.de_widgets[pos].connect("changed", self.mark_dirty)
|
||||||
row.pack_start(label, False)
|
row.pack_start(label, False)
|
||||||
row.pack_start(eventBox, True, True)
|
row.pack_start(eventBox, True, True)
|
||||||
if callback:
|
for name, text, callback in callback_list:
|
||||||
|
label = gtk.Label()
|
||||||
|
label.set_text(text)
|
||||||
|
self.de_widgets[pos + ":" + name + ":Label"] = label
|
||||||
|
row.pack_start(label, False)
|
||||||
icon = gtk.STOCK_EDIT
|
icon = gtk.STOCK_EDIT
|
||||||
size = gtk.ICON_SIZE_MENU
|
size = gtk.ICON_SIZE_MENU
|
||||||
button = gtk.Button()
|
button = gtk.Button()
|
||||||
@ -1374,7 +1390,7 @@ class DataEntryGramplet(Gramplet):
|
|||||||
button.add(image)
|
button.add(image)
|
||||||
button.set_relief(gtk.RELIEF_NONE)
|
button.set_relief(gtk.RELIEF_NONE)
|
||||||
button.connect("clicked", callback)
|
button.connect("clicked", callback)
|
||||||
#button.show_all()
|
self.de_widgets[pos + ":" + name] = button
|
||||||
row.pack_start(button, False)
|
row.pack_start(button, False)
|
||||||
row.show_all()
|
row.show_all()
|
||||||
return row
|
return row
|
||||||
@ -1400,6 +1416,15 @@ class DataEntryGramplet(Gramplet):
|
|||||||
except Errors.WindowActiveError:
|
except Errors.WindowActiveError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def edit_family(self, obj):
|
||||||
|
from Editors import EditFamily
|
||||||
|
try:
|
||||||
|
EditFamily(self.gui.dbstate,
|
||||||
|
self.gui.uistate, [],
|
||||||
|
self.dirty_family)
|
||||||
|
except Errors.WindowActiveError:
|
||||||
|
pass
|
||||||
|
|
||||||
def process_dateplace(self, text):
|
def process_dateplace(self, text):
|
||||||
if text == "": return None, None
|
if text == "": return None, None
|
||||||
prep_in = _("in") # word or phrase that separates date from place
|
prep_in = _("in") # word or phrase that separates date from place
|
||||||
|
Loading…
x
Reference in New Issue
Block a user