Pre02 for gramps-0.9.0
svn: r1160
This commit is contained in:
parent
8fda52fb98
commit
814af540c2
@ -100,8 +100,7 @@ class AutoCompBase:
|
||||
this form of a select_region() call works in a signal handler and
|
||||
the other form doesn't is a mystery.
|
||||
"""
|
||||
#entry.select_region(0, 0)
|
||||
pass
|
||||
entry.select_region(0, 0)
|
||||
|
||||
def timer_callback(self,entry):
|
||||
"""
|
||||
|
@ -137,7 +137,6 @@ class EditPerson:
|
||||
"on_ldsendow_src_clicked" : self.on_ldsendow_source_clicked,
|
||||
"on_ldsseal_src_clicked" : self.on_ldsseal_source_clicked,
|
||||
"on_name_source_clicked" : self.on_primary_name_source_clicked,
|
||||
"on_photolist_button_press_event" : self.gallery.on_button_press_event,
|
||||
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
|
||||
"on_update_address_clicked" : self.on_update_addr_clicked,
|
||||
"on_update_attr_clicked" : self.on_update_attr_clicked,
|
||||
|
@ -40,6 +40,7 @@ import GrampsCfg
|
||||
from RelLib import Person
|
||||
|
||||
import AddSpouse
|
||||
import SelectChild
|
||||
import DisplayTrace
|
||||
import Marriage
|
||||
import ChooseParents
|
||||
@ -88,6 +89,7 @@ class FamilyView:
|
||||
self.top.get_widget('del_spparents').connect('clicked',self.del_sp_parents)
|
||||
self.top.get_widget('fam_back').connect('clicked',self.child_back)
|
||||
self.top.get_widget('del_child_btn').connect('clicked',self.remove_child_clicked)
|
||||
self.top.get_widget('add_child_btn').connect('clicked',self.add_child_clicked)
|
||||
|
||||
column = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0)
|
||||
self.spouse_list.append_column(column)
|
||||
@ -154,6 +156,16 @@ class FamilyView:
|
||||
except:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
def add_child_clicked(self,obj):
|
||||
if not self.person:
|
||||
return
|
||||
try:
|
||||
SelectChild.SelectChild(self.parent.db, self.family,
|
||||
self.person,
|
||||
self.load_family)
|
||||
except:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
def remove_child_clicked(self,obj):
|
||||
if not self.family or not self.person:
|
||||
return
|
||||
|
@ -25,6 +25,7 @@
|
||||
#-------------------------------------------------------------------------
|
||||
import os
|
||||
import string
|
||||
import urlparse
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -226,6 +227,47 @@ class Gallery(ImageSelect):
|
||||
self.x = 0
|
||||
self.y = 0
|
||||
|
||||
def item_event(self, widget, event=None):
|
||||
|
||||
photo = widget.get_data('obj')
|
||||
if event.type == gtk.gdk.BUTTON_PRESS:
|
||||
if event.button == 1:
|
||||
# Remember starting position.
|
||||
self.remember_x = event.x
|
||||
self.remember_y = event.y
|
||||
return gtk.TRUE
|
||||
|
||||
elif event.button == 3:
|
||||
self.show_popup(photo)
|
||||
return gtk.TRUE
|
||||
|
||||
elif event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||
#Change the item's color.
|
||||
print photo,self.path,self
|
||||
LocalMediaProperties(photo,self.path,self)
|
||||
return gtk.TRUE
|
||||
|
||||
elif event.type == gtk.gdk.MOTION_NOTIFY:
|
||||
if event.state & gtk.gdk.BUTTON1_MASK:
|
||||
# Get the new position and move by the difference
|
||||
new_x = event.x
|
||||
new_y = event.y
|
||||
|
||||
self.remember_x = new_x
|
||||
self.remember_y = new_y
|
||||
|
||||
return gtk.TRUE
|
||||
|
||||
elif event.type == gtk.gdk.ENTER_NOTIFY:
|
||||
# Make the outline wide.
|
||||
return gtk.TRUE
|
||||
|
||||
elif event.type == gtk.gdk.LEAVE_NOTIFY:
|
||||
# Make the outline thin.
|
||||
return gtk.TRUE
|
||||
|
||||
return gtk.FALSE
|
||||
|
||||
def savephoto(self, photo):
|
||||
"""Save the photo in the dataobj object. (Required function)"""
|
||||
self.db.addObject(photo)
|
||||
@ -247,6 +289,8 @@ class Gallery(ImageSelect):
|
||||
y = image.get_height()
|
||||
|
||||
grp = self.root.add(gnome.canvas.CanvasGroup,x=self.cx,y=self.cy)
|
||||
grp.connect('event',self.item_event)
|
||||
grp.set_data('obj',photo)
|
||||
|
||||
xloc = (_IMAGEX-x)/2
|
||||
yloc = (_IMAGEX-y)/2
|
||||
@ -284,10 +328,13 @@ class Gallery(ImageSelect):
|
||||
self.cx = 10
|
||||
self.cy = 10
|
||||
|
||||
(self.x,self.y) = self.iconlist.get_size()
|
||||
|
||||
self.max = (self.x)/(_IMAGEX+10)
|
||||
|
||||
for photo in self.dataobj.getPhotoList():
|
||||
self.add_thumbnail(photo)
|
||||
|
||||
(self.x,self.y) = self.iconlist.get_size()
|
||||
if self.cy > self.y:
|
||||
self.iconlist.set_scroll_region(0,0,self.x,self.cy)
|
||||
else:
|
||||
@ -297,10 +344,16 @@ class Gallery(ImageSelect):
|
||||
"""User clicked on a photo. Remember which one."""
|
||||
self.selectedIcon = iconNumber
|
||||
|
||||
def get_index(self,obj,x,y):
|
||||
x_offset = x/(_IMAGEX+10)
|
||||
y_offset = y/(_IMAGEY+10)
|
||||
index = (y_offset*self.max)+x_offset
|
||||
return min(index,len(self.dataobj.getPhotoList()))
|
||||
|
||||
def on_photolist_drag_data_received(self,w, context, x, y, data, info, time):
|
||||
import urlparse
|
||||
print "receive",w
|
||||
if data and data.format == 8:
|
||||
icon_index = w.get_icon_at(x,y)
|
||||
icon_index = self.get_index(w,x,y)
|
||||
d = string.strip(string.replace(data.data,'\0',' '))
|
||||
protocol,site,file, j,k,l = urlparse.urlparse(d)
|
||||
if protocol == "file":
|
||||
@ -348,7 +401,7 @@ class Gallery(ImageSelect):
|
||||
photo.setPath(name)
|
||||
except:
|
||||
photo.setPath(tfile)
|
||||
w.drag_finish(context, 1, 0, time)
|
||||
# w.drag_finish(context, 1, 0, time)
|
||||
return
|
||||
self.add_thumbnail(oref)
|
||||
self.parent.lists_changed = 1
|
||||
@ -357,14 +410,15 @@ class Gallery(ImageSelect):
|
||||
GlobalMediaProperties(self.db,photo,None)
|
||||
else:
|
||||
if self.db.getObjectMap().has_key(data.data):
|
||||
icon_index = self.get_index(w,x,y)
|
||||
index = 0
|
||||
for p in self.dataobj.getPhotoList():
|
||||
if data.data == p.getReference().getId():
|
||||
if index == icon_index or icon_index == -1:
|
||||
w.drag_finish(context, 0, 0, time)
|
||||
# w.drag_finish(context, 0, 0, time)
|
||||
return
|
||||
else:
|
||||
w.drag_finish(context, 1, 0, time)
|
||||
# w.drag_finish(context, 1, 0, time)
|
||||
nl = self.dataobj.getPhotoList()
|
||||
item = nl[index]
|
||||
if icon_index == 0:
|
||||
@ -387,11 +441,13 @@ class Gallery(ImageSelect):
|
||||
if GrampsCfg.globalprop:
|
||||
LocalMediaProperties(oref,self.path,self)
|
||||
Utils.modified()
|
||||
w.drag_finish(context, 1, 0, time)
|
||||
#w.drag_finish(context, 1, 0, time)
|
||||
else:
|
||||
w.drag_finish(context, 0, 0, time)
|
||||
pass
|
||||
#w.drag_finish(context, 0, 0, time)
|
||||
|
||||
def on_photolist_drag_data_get(self,w, context, selection_data, info, time):
|
||||
print "drag data get",w
|
||||
if info == 1:
|
||||
return
|
||||
if self.selectedIcon != -1:
|
||||
@ -420,38 +476,34 @@ class Gallery(ImageSelect):
|
||||
self.selectedIcon = 0
|
||||
self.icon_list.select_icon(0)
|
||||
|
||||
def on_button_press_event(self, obj, event):
|
||||
def show_popup(self, photo):
|
||||
"""Look for right-clicks on a picture and create a popup
|
||||
menu of the available actions."""
|
||||
icon = self.selectedIcon
|
||||
if icon == -1:
|
||||
return
|
||||
|
||||
if event.button == 3:
|
||||
photo = self.dataobj.getPhotoList()[icon]
|
||||
menu = gtk.Menu()
|
||||
item = gtk.TearoffMenuItem()
|
||||
item.show()
|
||||
menu.append(item)
|
||||
mtype = object.getMimeType()
|
||||
progname = grampslib.default_application_name(mtype)
|
||||
|
||||
Utils.add_menuitem(menu,_("Open in %s") % progname,
|
||||
None,self.popup_view_photo)
|
||||
object = photo.getReference()
|
||||
if mtype[0:5] == "image":
|
||||
Utils.add_menuitem(menu,_("Edit with the GIMP"),
|
||||
None,self.popup_edit_photo)
|
||||
Utils.add_menuitem(menu,_("Edit Object Properties"),None,
|
||||
self.popup_change_description)
|
||||
if object.getLocal() == 0:
|
||||
Utils.add_menuitem(menu,_("Convert to local copy"),None,
|
||||
self.popup_convert_to_private)
|
||||
menu.popup(None,None,None,0,0)
|
||||
menu = gtk.Menu()
|
||||
item = gtk.TearoffMenuItem()
|
||||
item.show()
|
||||
menu.append(item)
|
||||
object = photo.getReference()
|
||||
mtype = object.getMimeType()
|
||||
progname = grampslib.default_application_name(mtype)
|
||||
|
||||
Utils.add_menuitem(menu,_("Open in %s") % progname,
|
||||
photo,self.popup_view_photo)
|
||||
if mtype[0:5] == "image":
|
||||
Utils.add_menuitem(menu,_("Edit with the GIMP"),
|
||||
photo,self.popup_edit_photo)
|
||||
Utils.add_menuitem(menu,_("Edit Object Properties"),photo,
|
||||
self.popup_change_description)
|
||||
if object.getLocal() == 0:
|
||||
Utils.add_menuitem(menu,_("Convert to local copy"),photo,
|
||||
self.popup_convert_to_private)
|
||||
menu.popup(None,None,None,0,0)
|
||||
|
||||
def popup_view_photo(self, obj):
|
||||
"""Open this picture in a picture viewer"""
|
||||
photo = self.dataobj.getPhotoList()[self.selectedIcon]
|
||||
photo = obj.get_data('o')
|
||||
Utils.view_photo(photo.getReference())
|
||||
|
||||
def popup_edit_photo(self, obj):
|
||||
@ -501,18 +553,19 @@ class LocalMediaProperties:
|
||||
self.attr_value = self.change_dialog.get_widget("attr_value")
|
||||
self.attr_details = self.change_dialog.get_widget("attr_details")
|
||||
|
||||
|
||||
self.attr_list = self.change_dialog.get_widget("attr_list")
|
||||
self.attr_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
|
||||
Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1), (_('Value'),100,-1)])
|
||||
Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1),
|
||||
(_('Value'),100,-1)])
|
||||
self.attr_list.set_model(self.attr_model)
|
||||
self.attr_list.get_selection().connect('changed',self.on_attr_list_select_row)
|
||||
|
||||
descr_window.set_text(self.object.getDescription())
|
||||
mtype = self.object.getMimeType()
|
||||
|
||||
self.pix = gtk.gdk.pixbuf_new_from_file(path)
|
||||
pixmap.set_from_pixbuf(self.pix)
|
||||
if os.path.isfile(path):
|
||||
self.pix = gtk.gdk.pixbuf_new_from_file(path)
|
||||
pixmap.set_from_pixbuf(self.pix)
|
||||
|
||||
self.change_dialog.get_widget("private").set_active(photo.getPrivacy())
|
||||
self.change_dialog.get_widget("gid").set_text(self.object.getId())
|
||||
|
@ -58,8 +58,20 @@ class ListModel:
|
||||
renderer = gtk.CellRendererText()
|
||||
column = gtk.TreeViewColumn(name[0],renderer,text=cnum)
|
||||
column.set_min_width(name[1])
|
||||
if name[2]:
|
||||
column.set_sort_column_id(name[2])
|
||||
if name[0] == '':
|
||||
column.set_clickable(gtk.TRUE)
|
||||
column.set_visible(gtk.FALSE)
|
||||
else:
|
||||
column.set_resizable(gtk.TRUE)
|
||||
cnum = cnum + 1
|
||||
tree.append_column(column)
|
||||
if cnum == 1:
|
||||
column.clicked()
|
||||
|
||||
def clear(self):
|
||||
self.model.clear()
|
||||
|
||||
def add(self,data):
|
||||
iter = self.model.append()
|
||||
|
@ -32,8 +32,7 @@ import gnome.ui
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import Utils
|
||||
from intl import gettext
|
||||
_ = gettext
|
||||
from intl import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -23,8 +23,14 @@
|
||||
# internationalization
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from intl import gettext
|
||||
_ = gettext
|
||||
from intl import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import string
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -44,8 +50,8 @@ import const
|
||||
import sort
|
||||
import Utils
|
||||
import GrampsCfg
|
||||
import string
|
||||
import AutoComp
|
||||
import ListModel
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -64,13 +70,13 @@ class SelectChild:
|
||||
self.xml.signal_autoconnect({
|
||||
"on_save_child_clicked" : self.on_save_child_clicked,
|
||||
"on_show_toggled" : self.on_show_toggled,
|
||||
"on_add_person_clicked" : self.on_add_person_clicked,
|
||||
"destroy_passed_object" : Utils.destroy_passed_object
|
||||
})
|
||||
|
||||
self.select_child_list = {}
|
||||
self.top = self.xml.get_widget("selectChild")
|
||||
self.add_child = self.xml.get_widget("addChild")
|
||||
# self.add_child.set_column_visibility(1,GrampsCfg.id_visible)
|
||||
self.add_child = self.xml.get_widget("childlist")
|
||||
|
||||
if (self.family):
|
||||
father = self.family.getFather()
|
||||
@ -99,14 +105,17 @@ class SelectChild:
|
||||
self.mrel = self.xml.get_widget("mrel")
|
||||
self.frel = self.xml.get_widget("frel")
|
||||
self.mrel.set_text(_("Birth"))
|
||||
|
||||
self.frel.set_text(_("Birth"))
|
||||
|
||||
self.refmodel = ListModel.ListModel(self.add_child,[(_('Name'),150,3),(_('ID'),50,1),
|
||||
(_('Birth Date'),100,4),
|
||||
('',0,0),('',0,0)])
|
||||
self.redraw_child_list(2)
|
||||
self.top.show()
|
||||
|
||||
def redraw_child_list(self,filter):
|
||||
self.add_child.freeze()
|
||||
self.add_child.clear()
|
||||
self.refmodel.clear()
|
||||
index = 0
|
||||
|
||||
bday = self.person.getBirth().getDateObj()
|
||||
@ -160,39 +169,40 @@ class SelectChild:
|
||||
|
||||
person_list.append(person)
|
||||
|
||||
person_list.sort(sort.by_last_name)
|
||||
for person in person_list:
|
||||
self.add_child.append([Utils.phonebook_name(person),
|
||||
Utils.birthday(person),
|
||||
person.getId()])
|
||||
self.add_child.set_row_data(index,person)
|
||||
index = index + 1
|
||||
self.add_child.thaw()
|
||||
dinfo = self.db.getPersonDisplay(id)
|
||||
rdata = [dinfo[0],dinfo[1],dinfo[3],dinfo[5],dinfo[6]]
|
||||
self.refmodel.add(rdata)
|
||||
|
||||
def on_save_child_clicked(self,obj):
|
||||
for row in self.add_child.selection:
|
||||
select_child = self.add_child.get_row_data(row)
|
||||
if self.family == None:
|
||||
self.family = self.db.newFamily()
|
||||
self.person.addFamily(self.family)
|
||||
if self.person.getGender() == Person.male:
|
||||
self.family.setFather(self.person)
|
||||
else:
|
||||
self.family.setMother(self.person)
|
||||
store,iter = self.refmodel.selection.get_selected()
|
||||
|
||||
self.family.addChild(select_child)
|
||||
if not iter:
|
||||
return
|
||||
|
||||
mrel = const.childRelations[self.mrel.get_text()]
|
||||
mother = self.family.getMother()
|
||||
if mother and mother.getGender() != Person.female:
|
||||
if mrel == "Birth":
|
||||
mrel = "Unknown"
|
||||
id = self.refmodel.model.get_value(iter,1)
|
||||
select_child = self.db.getPerson(id)
|
||||
if self.family == None:
|
||||
self.family = self.db.newFamily()
|
||||
self.person.addFamily(self.family)
|
||||
if self.person.getGender() == Person.male:
|
||||
self.family.setFather(self.person)
|
||||
else:
|
||||
self.family.setMother(self.person)
|
||||
|
||||
frel = const.childRelations[self.frel.get_text()]
|
||||
father = self.family.getFather()
|
||||
if father and father.getGender() != Person.male:
|
||||
if frel == "Birth":
|
||||
frel = "Unknown"
|
||||
self.family.addChild(select_child)
|
||||
|
||||
mrel = const.childRelations[self.mrel.get_text()]
|
||||
mother = self.family.getMother()
|
||||
if mother and mother.getGender() != Person.female:
|
||||
if mrel == "Birth":
|
||||
mrel = "Unknown"
|
||||
|
||||
frel = const.childRelations[self.frel.get_text()]
|
||||
father = self.family.getFather()
|
||||
if father and father.getGender() != Person.male:
|
||||
if frel == "Birth":
|
||||
frel = "Unknown"
|
||||
|
||||
# if mrel == "Birth" and frel == "Birth":
|
||||
# family = select_child.getMainFamily()
|
||||
@ -201,9 +211,9 @@ class SelectChild:
|
||||
#
|
||||
# select_child.setMainFamily(self.family)
|
||||
# else:
|
||||
select_child.addAltFamily(self.family,mrel,frel)
|
||||
select_child.addAltFamily(self.family,mrel,frel)
|
||||
|
||||
Utils.modified()
|
||||
Utils.modified()
|
||||
|
||||
Utils.destroy_passed_object(obj)
|
||||
self.redraw(self.family)
|
||||
@ -211,185 +221,18 @@ class SelectChild:
|
||||
def on_show_toggled(self,obj):
|
||||
self.redraw_child_list(obj.get_active())
|
||||
|
||||
class NewChild:
|
||||
def on_add_person_clicked(self,obj):
|
||||
"""Called with the Add button is pressed. Calls the QuickAdd
|
||||
class to create a new person."""
|
||||
|
||||
def __init__(self,db,family,person,update,update_disp,autoname=3):
|
||||
self.db = db
|
||||
self.person = person
|
||||
self.family = family
|
||||
self.update = update
|
||||
self.edit_update = update_disp
|
||||
|
||||
self.xml = gtk.glade.XML(const.gladeFile,"addChild")
|
||||
self.xml.signal_autoconnect({
|
||||
"on_addchild_ok_clicked" : self.on_addchild_ok_clicked,
|
||||
"on_edit_new_child" : self.on_edit_new_child,
|
||||
"on_male_toggled" : self.on_male_toggled,
|
||||
"on_female_toggled" : self.on_female_toggled,
|
||||
"on_gender_toggled" : self.on_gender_toggled,
|
||||
"destroy_passed_object" : Utils.destroy_passed_object
|
||||
})
|
||||
|
||||
if autoname == 0:
|
||||
self.update_surname = self.north_american
|
||||
elif autoname == 2:
|
||||
self.update_surname = self.latin_american
|
||||
elif autoname == 3:
|
||||
self.update_surname = self.icelandic
|
||||
else:
|
||||
self.update_surname = self.no_name
|
||||
|
||||
self.mrel = self.xml.get_widget("mrel")
|
||||
self.frel = self.xml.get_widget("frel")
|
||||
self.top = self.xml.get_widget("addChild")
|
||||
self.surname = self.xml.get_widget("surname")
|
||||
self.given = self.xml.get_widget("childGiven")
|
||||
if GrampsCfg.autocomp:
|
||||
self.comp = AutoComp.AutoEntry(self.surname,self.db.getSurnames())
|
||||
|
||||
self.surname.set_text(self.update_surname(2))
|
||||
|
||||
if self.family:
|
||||
father = self.family.getFather()
|
||||
mother = self.family.getMother()
|
||||
|
||||
if father != None:
|
||||
fname = father.getPrimaryName().getName()
|
||||
label = _("Relationship to %s") % fname
|
||||
self.xml.get_widget("flabel").set_text(label)
|
||||
|
||||
if mother != None:
|
||||
mname = mother.getPrimaryName().getName()
|
||||
label = _("Relationship to %s") % mname
|
||||
self.xml.get_widget("mlabel").set_text(label)
|
||||
else:
|
||||
fname = self.person.getPrimaryName().getName()
|
||||
label = _("Relationship to %s") % fname
|
||||
|
||||
if self.person.getGender() == Person.male:
|
||||
self.xml.get_widget("flabel").set_text(label)
|
||||
self.xml.get_widget("mcombo").set_sensitive(0)
|
||||
else:
|
||||
self.xml.get_widget("mlabel").set_text(label)
|
||||
self.xml.get_widget("fcombo").set_sensitive(0)
|
||||
|
||||
self.mrel.set_text(_("Birth"))
|
||||
self.frel.set_text(_("Birth"))
|
||||
|
||||
# Typing CR selects OK button
|
||||
self.top.editable_enters(self.given)
|
||||
self.top.editable_enters(self.surname)
|
||||
self.top.editable_enters(self.mrel)
|
||||
self.top.editable_enters(self.frel)
|
||||
self.top.show()
|
||||
|
||||
def on_male_toggled(self,obj):
|
||||
if obj.get_active():
|
||||
txt = self.surname.get_text()
|
||||
if txt == "" or txt == self.update_surname(1):
|
||||
self.surname.set_text(self.update_surname(0))
|
||||
|
||||
def on_female_toggled(self,obj):
|
||||
if obj.get_active():
|
||||
txt = self.surname.get_text()
|
||||
if txt == "" or txt == self.update_surname(0):
|
||||
self.surname.set_text(self.update_surname(1))
|
||||
|
||||
def on_gender_toggled(self,obj):
|
||||
pass
|
||||
|
||||
def combo_insert_text(self,combo,new_text,new_text_len,i_dont_care):
|
||||
Utils.combo_insert_text(combo,new_text,new_text_len,i_dont_care)
|
||||
|
||||
def north_american(self,val):
|
||||
if self.person.getGender() == Person.male:
|
||||
return self.person.getPrimaryName().getSurname()
|
||||
elif self.family:
|
||||
f = self.family.getFather()
|
||||
if f:
|
||||
return f.getPrimaryName().getSurname()
|
||||
return ""
|
||||
|
||||
def no_name(self,val):
|
||||
return ""
|
||||
|
||||
def latin_american(self,val):
|
||||
if self.family:
|
||||
father = self.family.getFather()
|
||||
mother = self.family.getMother()
|
||||
if not father or not mother:
|
||||
return ""
|
||||
fsn = father.getPrimaryName().getSurname()
|
||||
msn = mother.getPrimaryName().getSurname()
|
||||
if not father or not mother:
|
||||
return ""
|
||||
return "%s %s" % (string.split(fsn)[0],string.split(msn)[0])
|
||||
else:
|
||||
return ""
|
||||
|
||||
def icelandic(self,val):
|
||||
fname = ""
|
||||
if self.person.getGender() == Person.male:
|
||||
fname = self.person.getPrimaryName().getFirstName()
|
||||
elif self.family:
|
||||
f = self.family.getFather()
|
||||
if f:
|
||||
fname = f.getPrimaryName().getFirstName()
|
||||
if fname:
|
||||
fname = string.split(fname)[0]
|
||||
if val == 0:
|
||||
return "%ssson" % fname
|
||||
elif val == 1:
|
||||
return "%sdóttir" % fname
|
||||
else:
|
||||
return ""
|
||||
|
||||
def on_addchild_ok_clicked(self,obj):
|
||||
|
||||
surname = self.surname.get_text()
|
||||
given = self.given.get_text()
|
||||
|
||||
person = Person()
|
||||
self.db.addPerson(person)
|
||||
|
||||
name = Name()
|
||||
name.setSurname(surname)
|
||||
name.setFirstName(given)
|
||||
person.setPrimaryName(name)
|
||||
|
||||
if self.xml.get_widget("childMale").get_active():
|
||||
person.setGender(Person.male)
|
||||
elif self.xml.get_widget("childFemale").get_active():
|
||||
person.setGender(Person.female)
|
||||
else:
|
||||
person.setGender(Person.unknown)
|
||||
|
||||
if not self.family:
|
||||
self.family = self.db.newFamily()
|
||||
if self.person.getGender() == Person.male:
|
||||
self.family.setFather(self.person)
|
||||
else:
|
||||
self.family.setMother(self.person)
|
||||
self.person.addFamily(self.family)
|
||||
|
||||
mrel = const.childRelations[self.mrel.get_text()]
|
||||
frel = const.childRelations[self.frel.get_text()]
|
||||
|
||||
person.addAltFamily(self.family,mrel,frel)
|
||||
|
||||
self.family.addChild(person)
|
||||
|
||||
# must do an apply filter here to make sure the main window gets updated
|
||||
|
||||
self.update(self.family,person,[])
|
||||
Utils.modified()
|
||||
Utils.destroy_passed_object(obj)
|
||||
self.new_child = person
|
||||
|
||||
def on_edit_new_child(self,obj):
|
||||
import EditPerson
|
||||
|
||||
self.on_addchild_ok_clicked(obj)
|
||||
EditPerson.EditPerson(self.new_child,self.db,self.edit_update)
|
||||
import QuickAdd
|
||||
QuickAdd.QuickAdd(self.db,"male",self.add_new_parent)
|
||||
|
||||
def add_new_parent(self,person):
|
||||
"""Adds a new person to either the father list or the mother list,
|
||||
depending on the gender of the person."""
|
||||
id = person.getId()
|
||||
dinfo = self.db.getPersonDisplay(id)
|
||||
rdata = [dinfo[0],dinfo[1],dinfo[3],dinfo[5],dinfo[6]]
|
||||
self.refmodel.add(rdata)
|
||||
|
||||
|
21
src/Utils.py
21
src/Utils.py
@ -264,24 +264,13 @@ def add_menuitem(menu,msg,obj,func):
|
||||
#-------------------------------------------------------------------------
|
||||
def view_photo(photo):
|
||||
type = photo.getMimeType()
|
||||
prog = grampslib.gnome_vfs_mime_get_value(type,'view')
|
||||
open = grampslib.gnome_vfs_mime_get_value(type,'open')
|
||||
edit = grampslib.gnome_vfs_mime_get_value(type,'edit')
|
||||
if prog == "" and open == "" and edit == "":
|
||||
#GnomeWarningDialog("Sorry, I cannot find a viewer for %s type" % type)
|
||||
prog = grampslib.default_application_command(type)
|
||||
|
||||
if not prog:
|
||||
return
|
||||
|
||||
if not prog and not open :
|
||||
prog = edit
|
||||
else:
|
||||
prog = open
|
||||
|
||||
args = []
|
||||
for val in prog:
|
||||
if val == "%f":
|
||||
args.append(photo.getPath())
|
||||
else:
|
||||
args.append(val)
|
||||
args = string.split(prog)
|
||||
args.append(photo.getPath())
|
||||
|
||||
if os.fork() == 0:
|
||||
os.execvp(args[0],args)
|
||||
|
778
src/gramps.glade
778
src/gramps.glade
@ -2856,8 +2856,8 @@
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Add new person</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<signal name="clicked" handler="on_new_spouse_clicked" object="spouseDialog"/>
|
||||
</widget>
|
||||
@ -3849,6 +3849,8 @@
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="default_width">450</property>
|
||||
<property name="default_height">400</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="has_separator">True</property>
|
||||
@ -3932,7 +3934,7 @@
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">10</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
@ -3941,17 +3943,17 @@
|
||||
<widget class="GtkScrolledWindow" id="scrolledwindow37">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
||||
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTreeView" id="treeview9">
|
||||
<widget class="GtkTreeView" id="childlist">
|
||||
<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="rules_hint">True</property>
|
||||
<property name="reorderable">False</property>
|
||||
<property name="enable_search">True</property>
|
||||
</widget>
|
||||
@ -3963,6 +3965,31 @@
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox31">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button155">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<signal name="clicked" handler="on_add_person_clicked" last_modification_time="Wed, 30 Oct 2002 15:31:58 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -4051,7 +4078,6 @@
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<signal name="insert_text" handler="on_combo_insert_text" object="mrel_combo"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
@ -4258,7 +4284,6 @@
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<signal name="insert_text" handler="on_combo_insert_text" object="frel_combo"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
@ -4414,7 +4439,7 @@
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
@ -5082,739 +5107,6 @@
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="addChild">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Add New Child - GRAMPS</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="has_separator">True</property>
|
||||
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="dialog-vbox12">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area12">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button98">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Creates the new child and adds him or her as a child of the family</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="response_id">0</property>
|
||||
<signal name="clicked" handler="on_addchild_ok_clicked" object="addChild"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button99">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Adds the new person as a child of the family and displays the standard person dialog to allow for more data to be entered</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Add Data</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="response_id">0</property>
|
||||
<signal name="clicked" handler="on_edit_new_child" object="addChild"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button147">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="response_id">0</property>
|
||||
<signal name="clicked" handler="destroy_passed_object" object="addChild"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox32">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="newTitle">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>Add New Child</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.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">5</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHSeparator" id="hseparator16">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">10</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTable" id="table20">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">5</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="row_spacing">0</property>
|
||||
<property name="column_spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="flabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Relationship to Father</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">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="ypad">5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="childGiven">
|
||||
<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" translatable="yes">*</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="x_padding">5</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="surname">
|
||||
<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" translatable="yes">*</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="x_padding">5</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCombo" id="mcombo">
|
||||
<property name="visible">True</property>
|
||||
<property name="value_in_list">True</property>
|
||||
<property name="allow_empty">False</property>
|
||||
<property name="case_sensitive">True</property>
|
||||
<property name="enable_arrow_keys">True</property>
|
||||
<property name="enable_arrows_always">False</property>
|
||||
|
||||
<child internal-child="entry">
|
||||
<widget class="GtkEntry" id="frel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">False</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" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<signal name="insert_text" handler="on_combo_insert_text" object="fcombo"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child internal-child="list">
|
||||
<widget class="GtkList" id="convertwidget84">
|
||||
<property name="visible">True</property>
|
||||
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget85">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget86">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Birth</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget87">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget88">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Adopted</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget89">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget90">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Stepchild</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget91">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget92">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">None</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget93">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget94">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Unknown</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget95">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget96">
|
||||
<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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCombo" id="fcombo">
|
||||
<property name="visible">True</property>
|
||||
<property name="value_in_list">True</property>
|
||||
<property name="allow_empty">False</property>
|
||||
<property name="case_sensitive">True</property>
|
||||
<property name="enable_arrow_keys">True</property>
|
||||
<property name="enable_arrows_always">False</property>
|
||||
|
||||
<child internal-child="entry">
|
||||
<widget class="GtkEntry" id="mrel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">False</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" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
<signal name="insert_text" handler="on_combo_insert_text" object="mcombo"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child internal-child="list">
|
||||
<widget class="GtkList" id="convertwidget97">
|
||||
<property name="visible">True</property>
|
||||
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget98">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget99">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Birth</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget100">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget101">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Adopted</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget102">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget103">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Stepchild</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget104">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget105">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">None</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget106">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget107">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Unknown</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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget108">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget109">
|
||||
<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>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</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="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox18">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="childMale">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">male</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="on_male_toggled"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="childFemale">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">female</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">childMale</property>
|
||||
<signal name="toggled" handler="on_female_toggled"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="childUnknown">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">unknown</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">childMale</property>
|
||||
<signal name="toggled" handler="on_gender_toggled"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</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_padding">5</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label189">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Given Name</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">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="ypad">5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label190">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Surname</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">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="ypad">5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label191">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Gender</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">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="ypad">5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="mlabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Relationship to Mother</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">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">5</property>
|
||||
<property name="ypad">5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_padding">5</property>
|
||||
<property name="y_padding">5</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="addperson">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Add Person - GRAMPS</property>
|
||||
|
@ -259,8 +259,6 @@ class Gramps:
|
||||
"on_spouse_list_changed" : self.spouse_list_changed,
|
||||
"on_about_activate" : self.on_about_activate,
|
||||
"on_add_bookmark_activate" : self.on_add_bookmark_activate,
|
||||
"on_add_child_clicked" : self.on_add_child_clicked,
|
||||
"on_add_new_child_clicked" : self.on_add_new_child_clicked,
|
||||
"on_add_place_clicked" : self.place_view.on_add_place_clicked,
|
||||
"on_add_source_clicked" : self.source_view.on_add_clicked,
|
||||
"on_addperson_clicked" : self.load_new_person,
|
||||
@ -561,28 +559,6 @@ class Gramps:
|
||||
def add_new_cancel(self,obj):
|
||||
Utils.destroy_passed_object(self.addornew)
|
||||
|
||||
def on_add_child_clicked(self,obj):
|
||||
"""Select an existing child to add to the active family"""
|
||||
import SelectChild
|
||||
if self.active_person:
|
||||
SelectChild.SelectChild(self.db,self.active_family,
|
||||
self.active_person,
|
||||
self.family_view.load_family)
|
||||
|
||||
def on_add_new_child_clicked(self,obj):
|
||||
"""Create a new child to add to the existing family"""
|
||||
import SelectChild
|
||||
if self.active_person:
|
||||
try:
|
||||
SelectChild.NewChild(self.db,self.active_family,
|
||||
self.active_person,
|
||||
self.update_after_newchild,
|
||||
self.update_after_edit,
|
||||
GrampsCfg.lastnamegen)
|
||||
except:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
|
||||
def on_new_clicked(self,obj):
|
||||
"""Prompt for permission to close the current database"""
|
||||
|
||||
|
@ -9,6 +9,8 @@
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="default_width">475</property>
|
||||
<property name="default_height">350</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="has_separator">True</property>
|
||||
@ -87,6 +89,7 @@
|
||||
|
||||
<child>
|
||||
<widget class="GtkTreeView" id="tree">
|
||||
<property name="width_request">175</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="headers_visible">True</property>
|
||||
|
Loading…
Reference in New Issue
Block a user