9704: Events coordinates : add menu to edit place or event.
This commit is contained in:
parent
8258e6a399
commit
60406bc239
@ -31,6 +31,7 @@ from gi.repository import Gtk
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from gramps.gui.editors import EditEvent
|
from gramps.gui.editors import EditEvent
|
||||||
|
from gramps.gui.editors import EditPlace
|
||||||
from gramps.gui.listmodel import ListModel, NOSORT
|
from gramps.gui.listmodel import ListModel, NOSORT
|
||||||
from gramps.gen.plug import Gramplet
|
from gramps.gen.plug import Gramplet
|
||||||
from gramps.gen.plug.report.utils import find_spouse
|
from gramps.gen.plug.report.utils import find_spouse
|
||||||
@ -79,9 +80,11 @@ class GeoEvents(Gramplet, DbGUIElement):
|
|||||||
"""
|
"""
|
||||||
Build the GUI interface.
|
Build the GUI interface.
|
||||||
"""
|
"""
|
||||||
tip = _('Double-click on a row to edit the selected event.')
|
tip = _('Right-click on a row to edit the selected event'
|
||||||
|
' or the related place.')
|
||||||
self.set_tooltip(tip)
|
self.set_tooltip(tip)
|
||||||
top = Gtk.TreeView()
|
top = Gtk.TreeView()
|
||||||
|
top.set_hover_selection(True)
|
||||||
titles = [('', NOSORT, 50,),
|
titles = [('', NOSORT, 50,),
|
||||||
(_('Type'), 1, 100),
|
(_('Type'), 1, 100),
|
||||||
(_('Description'), 2, 250),
|
(_('Description'), 2, 250),
|
||||||
@ -92,7 +95,7 @@ class GeoEvents(Gramplet, DbGUIElement):
|
|||||||
(_('Latitude'), 6, 130),
|
(_('Latitude'), 6, 130),
|
||||||
(_('Longitude'), 7, 130),
|
(_('Longitude'), 7, 130),
|
||||||
]
|
]
|
||||||
self.model = ListModel(top, titles, event_func=self.edit_event)
|
self.model = ListModel(top, titles, right_click=self.menu_edit)
|
||||||
return top
|
return top
|
||||||
|
|
||||||
def add_event_ref(self, event_ref, spouse=None, name=""):
|
def add_event_ref(self, event_ref, spouse=None, name=""):
|
||||||
@ -129,7 +132,45 @@ class GeoEvents(Gramplet, DbGUIElement):
|
|||||||
longitude
|
longitude
|
||||||
))
|
))
|
||||||
|
|
||||||
def edit_event(self, treeview):
|
def menu_edit(self, treeview, event):
|
||||||
|
"""
|
||||||
|
Show a menu to select either Edit the selected event or
|
||||||
|
the Place related to this event.
|
||||||
|
"""
|
||||||
|
self.menu = Gtk.Menu()
|
||||||
|
menu = self.menu
|
||||||
|
menu.set_title(_('Edit'))
|
||||||
|
title = _('Edit the event')
|
||||||
|
add_item = Gtk.MenuItem(label=title)
|
||||||
|
add_item.connect("activate", self.edit_event, treeview)
|
||||||
|
add_item.show()
|
||||||
|
menu.append(add_item)
|
||||||
|
title = _('Edit the place')
|
||||||
|
add_item = Gtk.MenuItem(label=title)
|
||||||
|
add_item.connect("activate", self.edit_place, treeview)
|
||||||
|
add_item.show()
|
||||||
|
menu.append(add_item)
|
||||||
|
menu.show()
|
||||||
|
menu.popup(None, None, None, None, event.button, event.time)
|
||||||
|
|
||||||
|
def edit_place(self, menuitem, treeview):
|
||||||
|
"""
|
||||||
|
Edit the place related to the selected event.
|
||||||
|
"""
|
||||||
|
model, iter_ = treeview.get_selection().get_selected()
|
||||||
|
if iter_:
|
||||||
|
handle = model.get_value(iter_, 0)
|
||||||
|
try:
|
||||||
|
event = self.dbstate.db.get_event_from_handle(handle)
|
||||||
|
place_handle = event.get_place_handle()
|
||||||
|
place_id = latitude = longitude = ""
|
||||||
|
if place_handle:
|
||||||
|
plc = self.dbstate.db.get_place_from_handle(place_handle)
|
||||||
|
EditPlace(self.dbstate, self.uistate, [], plc)
|
||||||
|
except WindowActiveError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def edit_event(self, menuitem, treeview):
|
||||||
"""
|
"""
|
||||||
Edit the selected event.
|
Edit the selected event.
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user