Places now have source support, and the ability to delete places
svn: r354
This commit is contained in:
parent
e482e4c9e5
commit
fed08bea4d
4
gramps/configure
vendored
4
gramps/configure
vendored
@ -1192,6 +1192,8 @@ trap 'rm -fr `echo "Makefile \
|
|||||||
src/plugins/Makefile\
|
src/plugins/Makefile\
|
||||||
src/filters/Makefile\
|
src/filters/Makefile\
|
||||||
src/data/Makefile\
|
src/data/Makefile\
|
||||||
|
doc/gramps-manual/C/Makefile\
|
||||||
|
omf-install/Makefile\
|
||||||
gramps.sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
|
gramps.sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
|
||||||
EOF
|
EOF
|
||||||
cat >> $CONFIG_STATUS <<EOF
|
cat >> $CONFIG_STATUS <<EOF
|
||||||
@ -1281,6 +1283,8 @@ CONFIG_FILES=\${CONFIG_FILES-"Makefile \
|
|||||||
src/plugins/Makefile\
|
src/plugins/Makefile\
|
||||||
src/filters/Makefile\
|
src/filters/Makefile\
|
||||||
src/data/Makefile\
|
src/data/Makefile\
|
||||||
|
doc/gramps-manual/C/Makefile\
|
||||||
|
omf-install/Makefile\
|
||||||
gramps.sh"}
|
gramps.sh"}
|
||||||
EOF
|
EOF
|
||||||
cat >> $CONFIG_STATUS <<\EOF
|
cat >> $CONFIG_STATUS <<\EOF
|
||||||
|
@ -138,6 +138,7 @@ AC_OUTPUT(Makefile \
|
|||||||
src/plugins/Makefile\
|
src/plugins/Makefile\
|
||||||
src/filters/Makefile\
|
src/filters/Makefile\
|
||||||
src/data/Makefile\
|
src/data/Makefile\
|
||||||
|
doc/gramps-manual/C/Makefile\
|
||||||
gramps.sh)
|
gramps.sh)
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,6 +48,7 @@ import const
|
|||||||
import utils
|
import utils
|
||||||
from RelLib import *
|
from RelLib import *
|
||||||
import RelImage
|
import RelImage
|
||||||
|
import Sources
|
||||||
|
|
||||||
_ = intl.gettext
|
_ = intl.gettext
|
||||||
|
|
||||||
@ -67,6 +68,7 @@ class EditPlace:
|
|||||||
self.callback = func
|
self.callback = func
|
||||||
self.path = db.getSavePath()
|
self.path = db.getSavePath()
|
||||||
self.not_loaded = 1
|
self.not_loaded = 1
|
||||||
|
self.sref = SourceRef(place.getSourceRef())
|
||||||
|
|
||||||
self.selectedIcon = -1
|
self.selectedIcon = -1
|
||||||
self.currentImages = []
|
self.currentImages = []
|
||||||
@ -83,6 +85,7 @@ class EditPlace:
|
|||||||
self.web_list = self.top_window.get_widget("web_list")
|
self.web_list = self.top_window.get_widget("web_list")
|
||||||
self.web_url = self.top_window.get_widget("url_addr")
|
self.web_url = self.top_window.get_widget("url_addr")
|
||||||
self.web_description = self.top_window.get_widget("url_des")
|
self.web_description = self.top_window.get_widget("url_des")
|
||||||
|
self.source_field = self.top_window.get_widget("source_field")
|
||||||
|
|
||||||
self.loc_list = self.top_window.get_widget("loc_list")
|
self.loc_list = self.top_window.get_widget("loc_list")
|
||||||
self.loc_city = self.top_window.get_widget("loc_city")
|
self.loc_city = self.top_window.get_widget("loc_city")
|
||||||
@ -103,6 +106,10 @@ class EditPlace:
|
|||||||
self.country.set_text(mloc.get_country())
|
self.country.set_text(mloc.get_country())
|
||||||
self.longitude.set_text(place.get_longitude())
|
self.longitude.set_text(place.get_longitude())
|
||||||
self.latitude.set_text(place.get_latitude())
|
self.latitude.set_text(place.get_latitude())
|
||||||
|
if self.sref.getBase():
|
||||||
|
self.source_field.set_text(self.sref.getBase().getTitle())
|
||||||
|
else:
|
||||||
|
self.source_field.set_text("")
|
||||||
|
|
||||||
self.note.set_point(0)
|
self.note.set_point(0)
|
||||||
self.note.insert_defaults(place.getNote())
|
self.note.insert_defaults(place.getNote())
|
||||||
@ -112,6 +119,7 @@ class EditPlace:
|
|||||||
|
|
||||||
self.top_window.signal_autoconnect({
|
self.top_window.signal_autoconnect({
|
||||||
"destroy_passed_object" : utils.destroy_passed_object,
|
"destroy_passed_object" : utils.destroy_passed_object,
|
||||||
|
"on_source_clicked" : on_source_clicked,
|
||||||
"on_photolist_select_icon" : on_photo_select_icon,
|
"on_photolist_select_icon" : on_photo_select_icon,
|
||||||
"on_photolist_button_press_event" : on_photolist_button_press_event,
|
"on_photolist_button_press_event" : on_photolist_button_press_event,
|
||||||
"on_switch_page" : on_switch_page,
|
"on_switch_page" : on_switch_page,
|
||||||
@ -158,7 +166,7 @@ class EditPlace:
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def update_locations(self):
|
def update_locations(self):
|
||||||
self.place.set_alternate_locations(self.ulist)
|
self.place.set_alternate_locations(self.llist)
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -267,6 +275,10 @@ def on_place_apply_clicked(obj):
|
|||||||
mloc.set_city(city)
|
mloc.set_city(city)
|
||||||
utils.modified()
|
utils.modified()
|
||||||
|
|
||||||
|
if not edit.place.getSourceRef().are_equal(edit.sref):
|
||||||
|
edit.place.setSourceRef(edit.sref)
|
||||||
|
utils.modified()
|
||||||
|
|
||||||
if state != mloc.get_state():
|
if state != mloc.get_state():
|
||||||
mloc.set_state(state)
|
mloc.set_state(state)
|
||||||
utils.modified()
|
utils.modified()
|
||||||
@ -629,6 +641,15 @@ def on_add_loc_clicked(obj):
|
|||||||
epo = obj.get_data(PLACE)
|
epo = obj.get_data(PLACE)
|
||||||
LocationEditor(obj.get_data(PLACE),None)
|
LocationEditor(obj.get_data(PLACE),None)
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
def on_source_clicked(obj):
|
||||||
|
epo = obj.get_data(PLACE)
|
||||||
|
Sources.SourceEditor(epo.sref,epo.db,epo.source_field)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# UrlEditor class
|
# UrlEditor class
|
||||||
|
@ -2981,9 +2981,14 @@
|
|||||||
<widget>
|
<widget>
|
||||||
<class>GtkButton</class>
|
<class>GtkButton</class>
|
||||||
<name>button114</name>
|
<name>button114</name>
|
||||||
<sensitive>False</sensitive>
|
|
||||||
<can_default>True</can_default>
|
<can_default>True</can_default>
|
||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
|
<signal>
|
||||||
|
<name>clicked</name>
|
||||||
|
<handler>on_delete_place_clicked</handler>
|
||||||
|
<object>place_list</object>
|
||||||
|
<last_modification_time>Tue, 21 Aug 2001 14:48:57 GMT</last_modification_time>
|
||||||
|
</signal>
|
||||||
<label>Delete Place</label>
|
<label>Delete Place</label>
|
||||||
<relief>GTK_RELIEF_NORMAL</relief>
|
<relief>GTK_RELIEF_NORMAL</relief>
|
||||||
</widget>
|
</widget>
|
||||||
@ -5805,4 +5810,165 @@ Unknown
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkDialog</class>
|
||||||
|
<name>place_query</name>
|
||||||
|
<title>Gramps - Delete a currently used Place</title>
|
||||||
|
<type>GTK_WINDOW_DIALOG</type>
|
||||||
|
<position>GTK_WIN_POS_CENTER</position>
|
||||||
|
<modal>True</modal>
|
||||||
|
<allow_shrink>True</allow_shrink>
|
||||||
|
<allow_grow>True</allow_grow>
|
||||||
|
<auto_shrink>False</auto_shrink>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkVBox</class>
|
||||||
|
<child_name>Dialog:vbox</child_name>
|
||||||
|
<name>dialog-vbox13</name>
|
||||||
|
<homogeneous>False</homogeneous>
|
||||||
|
<spacing>0</spacing>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkHBox</class>
|
||||||
|
<child_name>Dialog:action_area</child_name>
|
||||||
|
<name>dialog-action_area13</name>
|
||||||
|
<border_width>10</border_width>
|
||||||
|
<homogeneous>True</homogeneous>
|
||||||
|
<spacing>5</spacing>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>False</expand>
|
||||||
|
<fill>True</fill>
|
||||||
|
<pack>GTK_PACK_END</pack>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkHButtonBox</class>
|
||||||
|
<name>hbuttonbox25</name>
|
||||||
|
<layout_style>GTK_BUTTONBOX_END</layout_style>
|
||||||
|
<spacing>30</spacing>
|
||||||
|
<child_min_width>85</child_min_width>
|
||||||
|
<child_min_height>27</child_min_height>
|
||||||
|
<child_ipad_x>7</child_ipad_x>
|
||||||
|
<child_ipad_y>0</child_ipad_y>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>True</expand>
|
||||||
|
<fill>True</fill>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkButton</class>
|
||||||
|
<name>force_delete</name>
|
||||||
|
<can_default>True</can_default>
|
||||||
|
<can_focus>True</can_focus>
|
||||||
|
<signal>
|
||||||
|
<name>clicked</name>
|
||||||
|
<handler>on_force_delete_clicked</handler>
|
||||||
|
<object>place_query</object>
|
||||||
|
<last_modification_time>Tue, 21 Aug 2001 15:30:46 GMT</last_modification_time>
|
||||||
|
</signal>
|
||||||
|
<stock_button>GNOME_STOCK_BUTTON_YES</stock_button>
|
||||||
|
<relief>GTK_RELIEF_NORMAL</relief>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkButton</class>
|
||||||
|
<name>button116</name>
|
||||||
|
<can_default>True</can_default>
|
||||||
|
<can_focus>True</can_focus>
|
||||||
|
<signal>
|
||||||
|
<name>clicked</name>
|
||||||
|
<handler>destroy_passed_object</handler>
|
||||||
|
<object>place_query</object>
|
||||||
|
<last_modification_time>Tue, 21 Aug 2001 15:33:25 GMT</last_modification_time>
|
||||||
|
</signal>
|
||||||
|
<stock_button>GNOME_STOCK_BUTTON_NO</stock_button>
|
||||||
|
<relief>GTK_RELIEF_NORMAL</relief>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkVBox</class>
|
||||||
|
<name>vbox39</name>
|
||||||
|
<homogeneous>False</homogeneous>
|
||||||
|
<spacing>0</spacing>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>True</expand>
|
||||||
|
<fill>True</fill>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkLabel</class>
|
||||||
|
<name>label234</name>
|
||||||
|
<label>Warning: This place is currently in use!</label>
|
||||||
|
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||||
|
<wrap>False</wrap>
|
||||||
|
<xalign>0.5</xalign>
|
||||||
|
<yalign>0.5</yalign>
|
||||||
|
<xpad>0</xpad>
|
||||||
|
<ypad>10</ypad>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>False</expand>
|
||||||
|
<fill>False</fill>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkHSeparator</class>
|
||||||
|
<name>hseparator20</name>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>False</expand>
|
||||||
|
<fill>True</fill>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkScrolledWindow</class>
|
||||||
|
<name>scrolledwindow27</name>
|
||||||
|
<width>450</width>
|
||||||
|
<height>250</height>
|
||||||
|
<hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy>
|
||||||
|
<vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
|
||||||
|
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
|
||||||
|
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>True</expand>
|
||||||
|
<fill>True</fill>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkText</class>
|
||||||
|
<name>text</name>
|
||||||
|
<can_focus>True</can_focus>
|
||||||
|
<editable>False</editable>
|
||||||
|
<text></text>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkLabel</class>
|
||||||
|
<name>label233</name>
|
||||||
|
<label>Do you wish to delete this place?</label>
|
||||||
|
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||||
|
<wrap>False</wrap>
|
||||||
|
<xalign>0.5</xalign>
|
||||||
|
<yalign>0.5</yalign>
|
||||||
|
<xpad>0</xpad>
|
||||||
|
<ypad>10</ypad>
|
||||||
|
<child>
|
||||||
|
<padding>0</padding>
|
||||||
|
<expand>False</expand>
|
||||||
|
<fill>False</fill>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
|
||||||
</GTK-Interface>
|
</GTK-Interface>
|
||||||
|
@ -914,7 +914,86 @@ def on_delete_source_clicked(obj):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def on_delete_place_clicked(obj):
|
def on_delete_place_clicked(obj):
|
||||||
pass
|
global pevent
|
||||||
|
global fevent
|
||||||
|
|
||||||
|
index = obj.get_data("i")
|
||||||
|
if index == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
pevent = []
|
||||||
|
fevent = []
|
||||||
|
place = obj.get_row_data(index)
|
||||||
|
for p in database.getPersonMap().values():
|
||||||
|
for event in [p.getBirth(), p.getDeath()] + p.getEventList():
|
||||||
|
if event.getPlace() == place:
|
||||||
|
pevent.append(p,event)
|
||||||
|
for f in database.getFamilyMap().values():
|
||||||
|
for event in f.getEventList():
|
||||||
|
if event.getPlace() == place:
|
||||||
|
fevent.append(f,event)
|
||||||
|
|
||||||
|
if len(pevent) > 0 or len(fevent) > 0:
|
||||||
|
msg = []
|
||||||
|
ptop = libglade.GladeXML(const.gladeFile,"place_query")
|
||||||
|
ptop.signal_autoconnect({
|
||||||
|
'on_force_delete_clicked': on_force_delete_clicked,
|
||||||
|
'destroy_passed_object' : utils.destroy_passed_object})
|
||||||
|
|
||||||
|
fd = ptop.get_widget("place_query")
|
||||||
|
fd.set_data("p",pevent)
|
||||||
|
fd.set_data("f",fevent)
|
||||||
|
fd.set_data("place",place)
|
||||||
|
|
||||||
|
textbox = ptop.get_widget("text")
|
||||||
|
textbox.set_point(0)
|
||||||
|
textbox.set_word_wrap(1)
|
||||||
|
|
||||||
|
if len(pevent) > 0:
|
||||||
|
textbox.insert_defaults(_("People") + "\n")
|
||||||
|
textbox.insert_defaults("_________________________\n\n")
|
||||||
|
t = _("%s [%s]: event %s\n")
|
||||||
|
|
||||||
|
for e in pevent:
|
||||||
|
msg = t % (Config.nameof(e[0]),e[0].getId(),e[1].getName())
|
||||||
|
textbox.insert_defaults(msg)
|
||||||
|
|
||||||
|
if len(fevent) > 0:
|
||||||
|
textbox.insert_defaults("\n%s\n" % _("Families"))
|
||||||
|
textbox.insert_defaults("_________________________\n\n")
|
||||||
|
t = _("%s [%s]: event %s\n")
|
||||||
|
|
||||||
|
for e in fevent:
|
||||||
|
father = e[0].getFather()
|
||||||
|
mother = e[0].getMother()
|
||||||
|
if father and mother:
|
||||||
|
fname = "%s and %s" % (Config.nameof(father),Config.nameof(mother))
|
||||||
|
elif father:
|
||||||
|
fname = "%s" % Config.nameof(father)
|
||||||
|
else:
|
||||||
|
fname = "%s" % Config.nameof(mother)
|
||||||
|
|
||||||
|
msg = t % (fname,e[0].getId(),e[1].getName())
|
||||||
|
textbox.insert_defaults(msg)
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
def on_force_delete_clicked(obj):
|
||||||
|
place = obj.get_data('place')
|
||||||
|
plist = obj.get_data('p')
|
||||||
|
flist = obj.get_data('f')
|
||||||
|
|
||||||
|
for event in plist + flist:
|
||||||
|
event[1].setPlace(None)
|
||||||
|
map = database.getPlaceMap()
|
||||||
|
del map[place.getId()]
|
||||||
|
utils.modified()
|
||||||
|
utils.destroy_passed_object(obj)
|
||||||
|
update_display(0)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -923,12 +1002,9 @@ def on_delete_place_clicked(obj):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def on_edit_source_clicked(obj):
|
def on_edit_source_clicked(obj):
|
||||||
index = obj.get_data("i")
|
index = obj.get_data("i")
|
||||||
if index == -1:
|
if index != -1:
|
||||||
return
|
source = obj.get_row_data(index)
|
||||||
|
EditSource.EditSource(source,database,update_source_after_edit)
|
||||||
source = obj.get_row_data(index)
|
|
||||||
EditSource.EditSource(source,database,update_source_after_edit)
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -937,11 +1013,9 @@ def on_edit_source_clicked(obj):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def on_edit_place_clicked(obj):
|
def on_edit_place_clicked(obj):
|
||||||
index = obj.get_data("i")
|
index = obj.get_data("i")
|
||||||
if index == -1:
|
if index != -1:
|
||||||
return
|
place = obj.get_row_data(index)
|
||||||
|
EditPlace.EditPlace(place,database,update_place_after_edit)
|
||||||
place = obj.get_row_data(index)
|
|
||||||
EditPlace.EditPlace(place,database,update_place_after_edit)
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -1782,7 +1856,9 @@ def load_places():
|
|||||||
current_row = -1
|
current_row = -1
|
||||||
|
|
||||||
index = 0
|
index = 0
|
||||||
for src in database.getPlaceMap().values():
|
places = database.getPlaceMap().values()
|
||||||
|
|
||||||
|
for src in places:
|
||||||
title = src.get_title()
|
title = src.get_title()
|
||||||
id = src.getId()
|
id = src.getId()
|
||||||
mloc = src.get_main_location()
|
mloc = src.get_main_location()
|
||||||
@ -1794,6 +1870,8 @@ def load_places():
|
|||||||
place_list.set_row_data(index,src)
|
place_list.set_row_data(index,src)
|
||||||
index = index + 1
|
index = index + 1
|
||||||
|
|
||||||
|
place_list.sort()
|
||||||
|
|
||||||
if index > 0:
|
if index > 0:
|
||||||
if current_row == -1:
|
if current_row == -1:
|
||||||
current_row = 0
|
current_row = 0
|
||||||
|
@ -380,7 +380,7 @@
|
|||||||
|
|
||||||
<widget>
|
<widget>
|
||||||
<class>GtkEntry</class>
|
<class>GtkEntry</class>
|
||||||
<name>entry6</name>
|
<name>source_field</name>
|
||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
<editable>False</editable>
|
<editable>False</editable>
|
||||||
<text_visible>True</text_visible>
|
<text_visible>True</text_visible>
|
||||||
@ -573,8 +573,13 @@
|
|||||||
<widget>
|
<widget>
|
||||||
<class>GtkButton</class>
|
<class>GtkButton</class>
|
||||||
<name>button119</name>
|
<name>button119</name>
|
||||||
<sensitive>False</sensitive>
|
|
||||||
<can_focus>True</can_focus>
|
<can_focus>True</can_focus>
|
||||||
|
<signal>
|
||||||
|
<name>clicked</name>
|
||||||
|
<handler>on_source_clicked</handler>
|
||||||
|
<object>placeEditor</object>
|
||||||
|
<last_modification_time>Tue, 21 Aug 2001 14:02:25 GMT</last_modification_time>
|
||||||
|
</signal>
|
||||||
<label>Select</label>
|
<label>Select</label>
|
||||||
<relief>GTK_RELIEF_NORMAL</relief>
|
<relief>GTK_RELIEF_NORMAL</relief>
|
||||||
<child>
|
<child>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user