Fixed EventCmp handling of files, sort on place fields
svn: r527
This commit is contained in:
parent
1737362432
commit
1d1879b6cd
1
NEWS
1
NEWS
@ -40,6 +40,7 @@ Version 0.6.0pre
|
||||
a dotted line).
|
||||
* Reordering GRAMPS' ids attempts to preserve the integer originally
|
||||
assigned to the object.
|
||||
* The person view can be sorted by GRAMPS id.
|
||||
|
||||
Version 0.5.1
|
||||
* Bug fixes
|
||||
|
449
src/gramps.glade
449
src/gramps.glade
@ -909,16 +909,73 @@
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>glabel5</name>
|
||||
<label>ID</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<name>hbox38</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox39</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox40</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label275</name>
|
||||
<label>ID</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>idSort</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
@ -2406,17 +2463,363 @@
|
||||
<handler>on_place_list_button_press_event</handler>
|
||||
<last_modification_time>Fri, 17 Aug 2001 23:00:19 GMT</last_modification_time>
|
||||
</signal>
|
||||
<columns>6</columns>
|
||||
<column_widths>236,47,102,88,77,80</column_widths>
|
||||
<signal>
|
||||
<name>click_column</name>
|
||||
<handler>on_place_list_click_column</handler>
|
||||
<last_modification_time>Tue, 30 Oct 2001 18:18:53 GMT</last_modification_time>
|
||||
</signal>
|
||||
<columns>12</columns>
|
||||
<column_widths>222,47,102,88,77,80,5,5,5,5,5,5</column_widths>
|
||||
<selection_mode>GTK_SELECTION_EXTENDED</selection_mode>
|
||||
<show_titles>True</show_titles>
|
||||
<shadow_type>GTK_SHADOW_IN</shadow_type>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox41</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox42</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>place_title</name>
|
||||
<label>Place Name</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>place_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox43</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox44</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label283</name>
|
||||
<label>ID</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>place_id_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox45</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox46</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label284</name>
|
||||
<label>City</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>city_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox47</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox48</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label285</name>
|
||||
<label>County</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>county_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox49</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox50</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label286</name>
|
||||
<label>State</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>state_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>hbox51</name>
|
||||
<homogeneous>True</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>hbox52</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label287</name>
|
||||
<label>Country</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkArrow</class>
|
||||
<name>country_arrow</name>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
<visible>False</visible>
|
||||
<arrow_type>GTK_ARROW_DOWN</arrow_type>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>5</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label232</name>
|
||||
<label>Place Name</label>
|
||||
<name>label276</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
@ -2428,8 +2831,8 @@
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label233a</name>
|
||||
<label>ID</label>
|
||||
<name>label277</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
@ -2441,8 +2844,8 @@
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label233b</name>
|
||||
<label>City</label>
|
||||
<name>label278</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
@ -2454,8 +2857,8 @@
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label233c</name>
|
||||
<label>County</label>
|
||||
<name>label279</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
@ -2467,8 +2870,8 @@
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label233d</name>
|
||||
<label>State</label>
|
||||
<name>label280</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
@ -2480,8 +2883,8 @@
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<child_name>CList:title</child_name>
|
||||
<name>label233e</name>
|
||||
<label>Country</label>
|
||||
<name>label281</name>
|
||||
<label></label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
|
@ -109,12 +109,23 @@ mdetails = None
|
||||
preview = None
|
||||
database = None
|
||||
nameArrow = None
|
||||
idArrow = None
|
||||
deathArrow = None
|
||||
dateArrow = None
|
||||
|
||||
place_arrow = None
|
||||
place_id_arrow= None
|
||||
city_arrow = None
|
||||
county_arrow = None
|
||||
state_arrow = None
|
||||
country_arrow = None
|
||||
|
||||
canvas = None
|
||||
merge_button = None
|
||||
sort_column = 5
|
||||
sort_direct = SORT_ASCENDING
|
||||
p_sort_column = 0
|
||||
p_sort_direct = SORT_ASCENDING
|
||||
DataFilter = Filter.Filter("")
|
||||
c_birth_order = 0
|
||||
c_name = 1
|
||||
@ -939,11 +950,13 @@ def on_person_list_select_row(obj,row,b,c):
|
||||
#-------------------------------------------------------------------------
|
||||
def on_person_list_click_column(obj,column):
|
||||
if column == 0:
|
||||
change_sort(5,gtop.get_widget("nameSort"))
|
||||
change_sort(5,nameArrow)
|
||||
elif column == 1:
|
||||
change_sort(1,idArrow)
|
||||
elif column == 3:
|
||||
change_sort(6,gtop.get_widget("dateSort"))
|
||||
change_sort(6,dateArrow)
|
||||
elif column == 4:
|
||||
change_sort(7,gtop.get_widget("deathSort"))
|
||||
change_sort(7,deathArrow)
|
||||
else:
|
||||
return
|
||||
|
||||
@ -952,6 +965,41 @@ def on_person_list_click_column(obj,column):
|
||||
row = person_list.find_row_from_data(id2col[active_person])
|
||||
person_list.moveto(row)
|
||||
|
||||
|
||||
def on_place_list_click_column(obj,column):
|
||||
global p_sort_direct, p_sort_column
|
||||
|
||||
obj.freeze()
|
||||
if len(obj.selection):
|
||||
sel = obj.get_row_data(obj.selection[0])
|
||||
else:
|
||||
sel = None
|
||||
|
||||
place_arrows = [ place_arrow, place_id_arrow, city_arrow,
|
||||
county_arrow, state_arrow, country_arrow ]
|
||||
|
||||
for a in place_arrows:
|
||||
a.hide()
|
||||
arrow = place_arrows[column]
|
||||
if p_sort_column == column:
|
||||
if p_sort_direct == SORT_DESCENDING:
|
||||
p_sort_direct = SORT_ASCENDING
|
||||
arrow.set(GTK.ARROW_DOWN,2)
|
||||
else:
|
||||
p_sort_direct = SORT_DESCENDING
|
||||
arrow.set(GTK.ARROW_UP,2)
|
||||
else:
|
||||
p_sort_direct = SORT_ASCENDING
|
||||
arrow.set(GTK.ARROW_DOWN,2)
|
||||
p_sort_column = column
|
||||
place_list.set_sort_type(p_sort_direct)
|
||||
place_list.set_sort_column(p_sort_column + 6)
|
||||
arrow.show()
|
||||
place_list.sort()
|
||||
if sel:
|
||||
place_list.moveto(place_list.find_row_from_data(sel))
|
||||
obj.thaw()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
@ -961,9 +1009,9 @@ def change_sort(column,arrow):
|
||||
global sort_direct
|
||||
global sort_column
|
||||
|
||||
nameArrow.hide()
|
||||
deathArrow.hide()
|
||||
dateArrow.hide()
|
||||
for a in [ nameArrow, deathArrow, dateArrow, idArrow ]:
|
||||
if arrow != a:
|
||||
a.hide()
|
||||
arrow.show()
|
||||
|
||||
if sort_column == column:
|
||||
@ -975,6 +1023,7 @@ def change_sort(column,arrow):
|
||||
arrow.set(GTK.ARROW_UP,2)
|
||||
else:
|
||||
sort_direct = SORT_ASCENDING
|
||||
arrow.set(GTK.ARROW_DOWN,2)
|
||||
sort_column = column
|
||||
person_list.set_sort_type(sort_direct)
|
||||
person_list.set_sort_column(sort_column)
|
||||
@ -1347,21 +1396,21 @@ def on_media_activate(obj):
|
||||
def on_notebook1_switch_page(obj,junk,page):
|
||||
if page == 0:
|
||||
goto_active_person()
|
||||
merge_button.show()
|
||||
merge_button.set_sensitive(1)
|
||||
elif page == 1:
|
||||
merge_button.hide()
|
||||
merge_button.set_sensitive(0)
|
||||
load_family()
|
||||
elif page == 2:
|
||||
merge_button.hide()
|
||||
merge_button.set_sensitive(0)
|
||||
load_canvas()
|
||||
elif page == 3:
|
||||
merge_button.hide()
|
||||
merge_button.set_sensitive(0)
|
||||
load_sources()
|
||||
elif page == 4:
|
||||
merge_button.show()
|
||||
merge_button.set_sensitive(1)
|
||||
load_places()
|
||||
elif page == 5:
|
||||
merge_button.hide()
|
||||
merge_button.set_sensitive(0)
|
||||
load_media()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -1381,10 +1430,7 @@ def load_places():
|
||||
index = 0
|
||||
places = database.getPlaceMap().values()
|
||||
|
||||
nlist = map(lambda x: (string.upper(x.get_title()),x),places)
|
||||
nlist.sort()
|
||||
places = map(lambda(key,x): x, nlist)
|
||||
|
||||
u = string.upper
|
||||
for src in places:
|
||||
title = src.get_title()
|
||||
id = src.getId()
|
||||
@ -1393,7 +1439,8 @@ def load_places():
|
||||
county = mloc.get_county()
|
||||
state = mloc.get_state()
|
||||
country = mloc.get_country()
|
||||
place_list.append([title,id,city,county,state,country])
|
||||
place_list.append([title,id,city,county,state,country,
|
||||
u(title), u(id), u(city), u(county), u(state), u(country)])
|
||||
place_list.set_row_data(index,src)
|
||||
index = index + 1
|
||||
|
||||
@ -2601,8 +2648,10 @@ def main(arg):
|
||||
global statusbar,notebook
|
||||
global person_list, source_list, place_list, canvas, media_list
|
||||
global topWindow, preview, merge_button
|
||||
global nameArrow, dateArrow, deathArrow
|
||||
global nameArrow, dateArrow, deathArrow, idArrow
|
||||
global cNameArrow, cDateArrow
|
||||
global place_arrow, place_id_arrow, city_arrow, county_arrow
|
||||
global state_arrow, country_arrow
|
||||
global mid, mtype, mdesc, mpath, mdetails
|
||||
|
||||
rc_parse(const.gtkrcFile)
|
||||
@ -2635,9 +2684,16 @@ def main(arg):
|
||||
filter_list = gtop.get_widget("filter_list")
|
||||
notebook = gtop.get_widget(NOTEBOOK)
|
||||
nameArrow = gtop.get_widget("nameSort")
|
||||
idArrow = gtop.get_widget("idSort")
|
||||
dateArrow = gtop.get_widget("dateSort")
|
||||
deathArrow = gtop.get_widget("deathSort")
|
||||
merge_button= gtop.get_widget("merge")
|
||||
place_arrow = gtop.get_widget("place_arrow")
|
||||
place_id_arrow= gtop.get_widget("place_id_arrow")
|
||||
city_arrow = gtop.get_widget("city_arrow")
|
||||
county_arrow = gtop.get_widget("county_arrow")
|
||||
state_arrow = gtop.get_widget("state_arrow")
|
||||
country_arrow = gtop.get_widget("country_arrow")
|
||||
|
||||
t = [ ('STRING', 0, 0),
|
||||
('text/plain',0,0),
|
||||
@ -2653,6 +2709,15 @@ def main(arg):
|
||||
person_list.set_sort_column(sort_column)
|
||||
person_list.set_sort_type(sort_direct)
|
||||
|
||||
place_list.set_column_visibility(6,0)
|
||||
place_list.set_column_visibility(7,0)
|
||||
place_list.set_column_visibility(8,0)
|
||||
place_list.set_column_visibility(9,0)
|
||||
place_list.set_column_visibility(10,0)
|
||||
place_list.set_column_visibility(11,0)
|
||||
place_list.set_sort_column(p_sort_column +6 )
|
||||
place_list.set_sort_type(p_sort_direct)
|
||||
|
||||
fw = gtop.get_widget('filter')
|
||||
filter_list.set_menu(Filter.build_filter_menu(on_filter_name_changed,fw))
|
||||
|
||||
@ -2717,6 +2782,7 @@ def main(arg):
|
||||
"on_person_list_click_column" : on_person_list_click_column,
|
||||
"on_person_list_select_row" : on_person_list_select_row,
|
||||
"on_place_list_button_press_event" : on_place_list_button_press_event,
|
||||
"on_place_list_click_column" : on_place_list_click_column,
|
||||
"on_main_key_release_event" : on_main_key_release_event,
|
||||
"on_add_media_clicked" : create_add_dialog,
|
||||
"on_media_activate" : on_media_activate,
|
||||
|
@ -265,11 +265,14 @@ class ComplexFilterFile:
|
||||
def __init__(self,name):
|
||||
self.filters = {}
|
||||
self.fname = name
|
||||
f = open(self.fname)
|
||||
parser = make_parser()
|
||||
parser.setContentHandler(ComplexFilterParser(self))
|
||||
parser.parse(f)
|
||||
f.close()
|
||||
try:
|
||||
f = open(self.fname)
|
||||
parser = make_parser()
|
||||
parser.setContentHandler(ComplexFilterParser(self))
|
||||
parser.parse(f)
|
||||
f.close()
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
def get_filter_names(self):
|
||||
return self.filters.keys()
|
||||
|
@ -18,7 +18,10 @@
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
"Database Processing/Reorder gramps IDs"
|
||||
"""
|
||||
Change id IDs of all the elements in the database to conform to the
|
||||
scheme specified in the database's prefix ids
|
||||
"""
|
||||
|
||||
import re
|
||||
import utils
|
||||
@ -28,13 +31,9 @@ _ = intl.gettext
|
||||
|
||||
_findint = re.compile('^[^\d]*(\d+)[^\d]*')
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def runTool(database,active_person,callback):
|
||||
|
||||
"""Changed person, family, object, source, and place ids"""
|
||||
|
||||
make_new_ids(database.getPersonMap(),database.iprefix)
|
||||
make_new_ids(database.getFamilyMap(),database.fprefix)
|
||||
make_new_ids(database.getObjectMap(),database.oprefix)
|
||||
@ -45,11 +44,24 @@ def runTool(database,active_person,callback):
|
||||
|
||||
|
||||
def make_new_ids(data_map,prefix):
|
||||
"""Try to extract the old integer out of the id, and reuse it
|
||||
if possible. Otherwise, blindly renumber those that can't."""
|
||||
|
||||
dups = []
|
||||
newids = []
|
||||
|
||||
# search all ids in the map
|
||||
for id in data_map.keys():
|
||||
|
||||
# attempt to extract integer, if we can't, treat it as a
|
||||
# duplicate
|
||||
|
||||
match = _findint.match(id)
|
||||
if match:
|
||||
# get the integer, build the new id. Make sure it
|
||||
# hasn't already been chosen. If it has, put this
|
||||
# in the duplicate id list
|
||||
|
||||
index = match.groups()[0]
|
||||
newid = prefix % int(index)
|
||||
if newid == id:
|
||||
@ -62,6 +74,12 @@ def make_new_ids(data_map,prefix):
|
||||
data.setId(newid)
|
||||
data_map[newid] = data
|
||||
del data_map[id]
|
||||
else:
|
||||
dups.append(id)
|
||||
|
||||
# go through the duplicates, looking for the first availble
|
||||
# id that matches the new scheme.
|
||||
|
||||
index = 0
|
||||
for id in dups:
|
||||
while 1:
|
||||
|
Loading…
Reference in New Issue
Block a user