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 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 Version 0.3.2
* Fixed Style Editor on WebPage.py, to allow styles to be edited. * 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 * 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 * There are no sophisticated functions at all yet, such as merging of
databases or finding duplicate people. databases or finding duplicate people.
* There are no logic rules yet, such as warning if a parent's birthday * There are no logic rules yet, such as warning if a parent's birthday
is after a child's. 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" * 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. 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 Python 2.0 provides a zip interface, so this may need to hold off until
the move is made to Python 2.0. the move is made to Python 2.0.
* Really need a generic OutputFormat class, that can be reused in all the * Sort all lists
report generators. Derived classes can target OpenOffice, HTML, LaTeX,
KOffice, AbiWord, etc.
* And a whole lot more.... * And a whole lot more....

View File

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

View File

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