From 326a509e46d449f76e90694ac0ebca0fb4722670 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Sat, 14 Jul 2001 03:55:00 +0000 Subject: [PATCH] Multiple selection in Add Children box svn: r246 --- NEWS | 8 +++++- TODO | 12 +------- src/gramps.glade | 11 ++++++-- src/gramps_main.py | 70 ++++++++++++++++++++++++++-------------------- 4 files changed, 55 insertions(+), 46 deletions(-) diff --git a/NEWS b/NEWS index cf9817ccf..f3386f7ee 100644 --- a/NEWS +++ b/NEWS @@ -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. diff --git a/TODO b/TODO index a5e529ec2..7acf1a3bc 100644 --- a/TODO +++ b/TODO @@ -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.... diff --git a/src/gramps.glade b/src/gramps.glade index 11fe5343b..2aad6490d 100644 --- a/src/gramps.glade +++ b/src/gramps.glade @@ -1854,7 +1854,7 @@ on_add_child_clicked Tue, 21 Nov 2000 14:03:13 GMT - + GTK_RELIEF_NORMAL @@ -3412,7 +3412,7 @@ Unknown GtkLabel addChildTitle - + GTK_JUSTIFY_CENTER False 0.5 @@ -3460,9 +3460,14 @@ Unknown on_addChild_select_row Tue, 21 Nov 2000 21:52:56 GMT + + unselect_row + on_addChild_unselect_row + Sat, 14 Jul 2001 02:02:37 GMT + 3 200,80,40 - GTK_SELECTION_SINGLE + GTK_SELECTION_MULTIPLE True GTK_SHADOW_IN diff --git a/src/gramps_main.py b/src/gramps_main.py index f22e0b308..b292b705a 100755 --- a/src/gramps_main.py +++ b/src/gramps_main.py @@ -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)] #------------------------------------------------------------------------- #