Multiple selection in Add Children box

svn: r246
This commit is contained in:
Don Allingham 2001-07-14 03:55:00 +00:00
parent 6e66e34a9c
commit a2e1fb1287
4 changed files with 55 additions and 46 deletions

View File

@ -1,5 +1,11 @@
Version 0.4.0
* Redesigned Family page. More complex family relationships can be
handled.
* ISO date format supported
* Places are stored in a pulldown menu
* gramps ID can be displayed in many lists
* Multiple selection in Add Children box
* Internal gramps ID now a string instead of an integer
Version 0.3.2
* Fixed Style Editor on WebPage.py, to allow styles to be edited.

View File

@ -1,21 +1,11 @@
* More complete GEDCOM import and export. The current GEDCOM parse is
regular expression based, and not to sophisticated. It probably won't
take much to confuse it badly.
* Dates do not understand the concept of between
* Dates do not understand alternate calendars
* The GUI interface is not clean or consistant. It needs a considerable
amount of work.
* There are no sophisticated functions at all yet, such as merging of
databases or finding duplicate people.
* There are no logic rules yet, such as warning if a parent's birthday
is after a child's.
* I'm not happy with the mechanism for the selection of alternate parents.
It works, but is extremely clumsy and non-intuitive
* OpenOffice zip file is not handled very gracefully. Uses the "system"
call to generate the zip file using the hard coded path of /usr/bin/zip.
Python 2.0 provides a zip interface, so this may need to hold off until
the move is made to Python 2.0.
* Really need a generic OutputFormat class, that can be reused in all the
report generators. Derived classes can target OpenOffice, HTML, LaTeX,
KOffice, AbiWord, etc.
* Sort all lists
* And a whole lot more....

View File

@ -1854,7 +1854,7 @@
<handler>on_add_child_clicked</handler>
<last_modification_time>Tue, 21 Nov 2000 14:03:13 GMT</last_modification_time>
</signal>
<label>Add Existing Child</label>
<label>Add Existing Children</label>
<relief>GTK_RELIEF_NORMAL</relief>
</widget>
@ -3412,7 +3412,7 @@ Unknown
<widget>
<class>GtkLabel</class>
<name>addChildTitle</name>
<label>Add Child</label>
<label>Add Children</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
@ -3460,9 +3460,14 @@ Unknown
<handler>on_addChild_select_row</handler>
<last_modification_time>Tue, 21 Nov 2000 21:52:56 GMT</last_modification_time>
</signal>
<signal>
<name>unselect_row</name>
<handler>on_addChild_unselect_row</handler>
<last_modification_time>Sat, 14 Jul 2001 02:02:37 GMT</last_modification_time>
</signal>
<columns>3</columns>
<column_widths>200,80,40</column_widths>
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
<selection_mode>GTK_SELECTION_MULTIPLE</selection_mode>
<show_titles>True</show_titles>
<shadow_type>GTK_SHADOW_IN</shadow_type>

View File

@ -89,7 +89,7 @@ active_spouse = None
select_father = None
select_spouse = None
select_mother = None
select_child = None
select_child_list = {}
bookmarks = None
id2col = {}
@ -237,21 +237,21 @@ def on_delete_sp_clicked(obj):
#
#-------------------------------------------------------------------------
def on_add_child_clicked(obj):
global select_child
global addChildList
global childWindow
global select_child_list
select_child = None
childWindow = libglade.GladeXML(const.gladeFile,"selectChild")
childWindow.signal_autoconnect({
"on_save_child_clicked" : on_save_child_clicked,
"on_addChild_select_row" : on_addChild_select_row,
"on_addChild_unselect_row" : on_addChild_unselect_row,
"on_show_toggled" : on_show_toggled,
"destroy_passed_object" : utils.destroy_passed_object
})
select_child_list = {}
selectChild = childWindow.get_widget("selectChild")
addChildList = childWindow.get_widget("addChild")
addChildList.set_column_visibility(1,Config.id_visible)
@ -368,33 +368,33 @@ def on_addchild_ok_clicked(obj):
#-------------------------------------------------------------------------
def on_save_child_clicked(obj):
global active_family
if select_child == None:
return
if active_family == None:
active_family = database.newFamily()
active_person.addFamily(active_family)
if active_person.getGender() == Person.male:
active_family.setFather(active_person)
else:
active_family.setMother(active_person)
for select_child in select_child_list.keys():
active_family.addChild(select_child)
if active_family == None:
active_family = database.newFamily()
active_person.addFamily(active_family)
if active_person.getGender() == Person.male:
active_family.setFather(active_person)
else:
active_family.setMother(active_person)
active_family.addChild(select_child)
mrel = const.childRelations[childWindow.get_widget("mrel").get_text()]
frel = const.childRelations[childWindow.get_widget("frel").get_text()]
mrel = const.childRelations[childWindow.get_widget("mrel").get_text()]
frel = const.childRelations[childWindow.get_widget("frel").get_text()]
if mrel == "Birth" and frel == "Birth":
family = select_child.getMainFamily()
if family != None and family != active_family:
family.removeChild(select_child)
if mrel == "Birth" and frel == "Birth":
family = select_child.getMainFamily()
if family != None and family != active_family:
family.removeChild(select_child)
select_child.setMainFamily(active_family)
else:
select_child.addAltFamily(active_family,mrel,frel)
select_child.setMainFamily(active_family)
else:
select_child.addAltFamily(active_family,mrel,frel)
utils.modified()
utils.modified()
utils.destroy_passed_object(obj)
load_family()
@ -1163,7 +1163,7 @@ def on_person_list_click_column(obj,column):
else:
sortFunc = sort.reverse_name_sort
nameArrow.set(GTK.ARROW_UP,2)
elif column == 2:
elif column == 3:
nameArrow.hide()
deathArrow.hide()
dateArrow.show()
@ -1171,9 +1171,9 @@ def on_person_list_click_column(obj,column):
sortFunc = sort.fast_birth_sort
dateArrow.set(GTK.ARROW_DOWN,2)
else:
sortFunc = reverse_birth_sort
sortFunc = sort.reverse_birth_sort
dateArrow.set(GTK.ARROW_UP,2)
elif column == 3:
elif column == 4:
nameArrow.hide()
deathArrow.show()
dateArrow.hide()
@ -1183,6 +1183,8 @@ def on_person_list_click_column(obj,column):
else:
sortFunc = sort.reverse_death_sort
deathArrow.set(GTK.ARROW_UP,2)
else:
return
apply_filter()
#-------------------------------------------------------------------------
@ -1202,9 +1204,15 @@ def on_fatherList_select_row(obj,a,b,c):
#
#-------------------------------------------------------------------------
def on_addChild_select_row(obj,a,b,c):
global select_child
select_child = obj.get_row_data(a)
select_child_list[obj.get_row_data(a)] = 1
#-------------------------------------------------------------------------
#
#
#
#-------------------------------------------------------------------------
def on_addChild_unselect_row(obj,a,b,c):
del select_child_list[obj.get_row_data(a)]
#-------------------------------------------------------------------------
#