2008-02-14 Douglas S. Blank <dblank@cs.brynmawr.edu>
* src/DataViews/RelationView.py (RelationshipView.write_parents): added Sibling/Children add buttons; rearranged display; lost a bit of vertical space svn: r10034
This commit is contained in:
parent
311aa7b15d
commit
7dd79767f1
@ -1,3 +1,8 @@
|
|||||||
|
2008-02-14 Douglas S. Blank <dblank@cs.brynmawr.edu>
|
||||||
|
* src/DataViews/RelationView.py (RelationshipView.write_parents):
|
||||||
|
added Sibling/Children add buttons; rearranged display;
|
||||||
|
lost a bit of vertical space
|
||||||
|
|
||||||
2008-02-14 Raphael Ackermann <raphael.ackermann@gmail.com>
|
2008-02-14 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||||
* src/ObjectSelector/* : #1744: src/ObjectSelector is not used anmyore
|
* src/ObjectSelector/* : #1744: src/ObjectSelector is not used anmyore
|
||||||
* src/TreeViews/* : #1744: src/TreeViews is not used anmyore
|
* src/TreeViews/* : #1744: src/TreeViews is not used anmyore
|
||||||
|
@ -786,28 +786,48 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
|
|
||||||
child_list = [ref.ref for ref in family.get_child_ref_list()]
|
child_list = [ref.ref for ref in family.get_child_ref_list()]
|
||||||
|
|
||||||
if child_list:
|
label_cell = self.build_label_cell(_('Siblings'))
|
||||||
eventbox = gtk.EventBox()
|
label_cell.set_alignment(0, 0)
|
||||||
if self.use_shade:
|
self.attach.attach(
|
||||||
eventbox.modify_bg(gtk.STATE_NORMAL, self.color)
|
label_cell, _CLABEL_START-1, _CLABEL_STOP-1, self.row,
|
||||||
vbox = gtk.VBox()
|
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
||||||
label_cell = self.build_label_cell(_('Siblings'))
|
yoptions=gtk.FILL)
|
||||||
label_cell.set_alignment(0, 0)
|
|
||||||
self.attach.attach(
|
|
||||||
label_cell, _CLABEL_START, _CLABEL_STOP, self.row,
|
|
||||||
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
|
||||||
yoptions=gtk.FILL)
|
|
||||||
|
|
||||||
i = 1
|
hbox = gtk.HBox()
|
||||||
for child_handle in child_list:
|
addchild = GrampsWidgets.IconButton(
|
||||||
child_should_be_linked = (child_handle != active)
|
self.add_child_to_fam,
|
||||||
self.write_child(vbox, child_handle, i, child_should_be_linked)
|
family.handle,
|
||||||
i += 1
|
gtk.STOCK_ADD)
|
||||||
|
self.tooltips.set_tip(addchild,
|
||||||
|
_('Add new child to family'))
|
||||||
|
selchild = GrampsWidgets.IconButton(
|
||||||
|
self.sel_child_to_fam,
|
||||||
|
family.handle,
|
||||||
|
gtk.STOCK_INDEX)
|
||||||
|
self.tooltips.set_tip(selchild,
|
||||||
|
_('Add existing child to family'))
|
||||||
|
hbox.pack_start(addchild, False)
|
||||||
|
hbox.pack_start(selchild, False)
|
||||||
|
|
||||||
eventbox.add(vbox)
|
self.attach.attach(
|
||||||
self.attach.attach(
|
hbox, _CLABEL_START, _CLABEL_STOP, self.row,
|
||||||
eventbox, _CDATA_START, _CDATA_STOP, self.row,
|
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
||||||
self.row+1)
|
yoptions=gtk.FILL)
|
||||||
|
|
||||||
|
self.row += 1
|
||||||
|
vbox = gtk.VBox()
|
||||||
|
i = 1
|
||||||
|
for child_handle in child_list:
|
||||||
|
child_should_be_linked = (child_handle != active)
|
||||||
|
self.write_child(vbox, child_handle, i, child_should_be_linked)
|
||||||
|
i += 1
|
||||||
|
eventbox = gtk.EventBox()
|
||||||
|
if self.use_shade:
|
||||||
|
eventbox.modify_bg(gtk.STATE_NORMAL, self.color)
|
||||||
|
eventbox.add(vbox)
|
||||||
|
self.attach.attach(
|
||||||
|
eventbox, _CDATA_START-1, _CDATA_STOP-1, self.row,
|
||||||
|
self.row+1)
|
||||||
|
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
@ -1152,27 +1172,48 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
self.write_relationship(box, family)
|
self.write_relationship(box, family)
|
||||||
|
|
||||||
child_list = family.get_child_ref_list()
|
child_list = family.get_child_ref_list()
|
||||||
if child_list:
|
|
||||||
eventbox = gtk.EventBox()
|
|
||||||
if self.use_shade:
|
|
||||||
eventbox.modify_bg(gtk.STATE_NORMAL, self.color)
|
|
||||||
vbox = gtk.VBox()
|
|
||||||
label_cell = self.build_label_cell(_('Children'))
|
|
||||||
label_cell.set_alignment(0, 0)
|
|
||||||
self.attach.attach(
|
|
||||||
label_cell, _CLABEL_START, _CLABEL_STOP, self.row,
|
|
||||||
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
|
||||||
yoptions=gtk.FILL)
|
|
||||||
|
|
||||||
i = 1
|
label_cell = self.build_label_cell(_('Children'))
|
||||||
for child_ref in child_list:
|
label_cell.set_alignment(0, 0)
|
||||||
self.write_child(vbox, child_ref.ref, i, True)
|
self.attach.attach(
|
||||||
i += 1
|
label_cell, _CLABEL_START-1, _CLABEL_STOP-1, self.row,
|
||||||
|
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
||||||
|
yoptions=gtk.FILL)
|
||||||
|
|
||||||
eventbox.add(vbox)
|
hbox = gtk.HBox()
|
||||||
self.attach.attach(
|
addchild = GrampsWidgets.IconButton(
|
||||||
eventbox, _CDATA_START, _CDATA_STOP, self.row,
|
self.add_child_to_fam,
|
||||||
self.row+1)
|
family.handle,
|
||||||
|
gtk.STOCK_ADD)
|
||||||
|
self.tooltips.set_tip(addchild,
|
||||||
|
_('Add new child to family'))
|
||||||
|
selchild = GrampsWidgets.IconButton(
|
||||||
|
self.sel_child_to_fam,
|
||||||
|
family.handle,
|
||||||
|
gtk.STOCK_INDEX)
|
||||||
|
self.tooltips.set_tip(selchild,
|
||||||
|
_('Add existing child to family'))
|
||||||
|
hbox.pack_start(addchild, False)
|
||||||
|
hbox.pack_start(selchild, False)
|
||||||
|
self.attach.attach(
|
||||||
|
hbox, _CLABEL_START, _CLABEL_STOP, self.row,
|
||||||
|
self.row+1, xoptions=gtk.FILL|gtk.SHRINK,
|
||||||
|
yoptions=gtk.FILL)
|
||||||
|
|
||||||
|
vbox = gtk.VBox()
|
||||||
|
i = 1
|
||||||
|
for child_ref in child_list:
|
||||||
|
self.write_child(vbox, child_ref.ref, i, True)
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
self.row += 1
|
||||||
|
eventbox = gtk.EventBox()
|
||||||
|
if self.use_shade:
|
||||||
|
eventbox.modify_bg(gtk.STATE_NORMAL, self.color)
|
||||||
|
eventbox.add(vbox)
|
||||||
|
self.attach.attach(
|
||||||
|
eventbox, _CDATA_START-1, _CDATA_STOP-1, self.row,
|
||||||
|
self.row+1)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
def edit_button_press(self, obj, event, handle):
|
def edit_button_press(self, obj, event, handle):
|
||||||
@ -1238,6 +1279,53 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
phandle = self.dbstate.get_active_person().handle
|
phandle = self.dbstate.get_active_person().handle
|
||||||
self.edit_person(obj, phandle)
|
self.edit_person(obj, phandle)
|
||||||
|
|
||||||
|
def add_child_to_fam(self, obj, event, handle):
|
||||||
|
callback = lambda x: self.callback_add_child(x, handle)
|
||||||
|
from Editors import EditPerson
|
||||||
|
person = gen.lib.Person()
|
||||||
|
family = self.dbstate.db.get_family_from_handle(handle)
|
||||||
|
father = self.dbstate.db.get_person_from_handle(
|
||||||
|
family.get_father_handle())
|
||||||
|
if father:
|
||||||
|
name = father.get_primary_name().get_surname()
|
||||||
|
person.get_primary_name().set_surname(name)
|
||||||
|
try:
|
||||||
|
EditPerson(self.dbstate, self.uistate, [], person,
|
||||||
|
callback=callback)
|
||||||
|
except Errors.WindowActiveError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def callback_add_child(self, person, family_handle):
|
||||||
|
ref = gen.lib.ChildRef()
|
||||||
|
ref.ref = person.get_handle()
|
||||||
|
family = self.dbstate.db.get_family_from_handle(family_handle)
|
||||||
|
family.add_child_ref(ref)
|
||||||
|
|
||||||
|
trans = self.dbstate.db.transaction_begin()
|
||||||
|
#add parentref to child
|
||||||
|
person.add_parent_family_handle(family_handle)
|
||||||
|
#default relationship is used
|
||||||
|
self.dbstate.db.commit_person(person, trans)
|
||||||
|
#add child to family
|
||||||
|
self.dbstate.db.commit_family(family, trans)
|
||||||
|
self.dbstate.db.transaction_commit(trans, _("Add Child to Family"))
|
||||||
|
|
||||||
|
def sel_child_to_fam(self, obj, event, handle):
|
||||||
|
from Selectors import selector_factory
|
||||||
|
SelectPerson = selector_factory('Person')
|
||||||
|
family = self.dbstate.db.get_family_from_handle(handle)
|
||||||
|
# it only makes sense to skip those who are already in the family
|
||||||
|
skip_list = [family.get_father_handle(), \
|
||||||
|
family.get_mother_handle()] + \
|
||||||
|
[x.ref for x in family.get_child_ref_list() ]
|
||||||
|
|
||||||
|
sel = SelectPerson(self.dbstate, self.uistate, [],
|
||||||
|
_("Select Child"), skip=skip_list)
|
||||||
|
person = sel.run()
|
||||||
|
|
||||||
|
if person:
|
||||||
|
self.callback_add_child(person, handle)
|
||||||
|
|
||||||
def select_family(self, obj, event, handle):
|
def select_family(self, obj, event, handle):
|
||||||
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1 \
|
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1 \
|
||||||
or event.keyval in (_RETURN, _KP_ENTER):
|
or event.keyval in (_RETURN, _KP_ENTER):
|
||||||
|
Loading…
Reference in New Issue
Block a user