Multiple selection in Add Children box
svn: r246
This commit is contained in:
@@ -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.
|
||||||
|
12
gramps/TODO
12
gramps/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
|
* 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....
|
||||||
|
@@ -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>
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
@@ -369,8 +369,7 @@ 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:
|
for select_child in select_child_list.keys():
|
||||||
return
|
|
||||||
|
|
||||||
if active_family == None:
|
if active_family == None:
|
||||||
active_family = database.newFamily()
|
active_family = database.newFamily()
|
||||||
@@ -395,6 +394,7 @@ def on_save_child_clicked(obj):
|
|||||||
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)]
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user