2024-09-03 00:06:19 -04:00

49 lines
1.8 KiB
Diff

58a59
> from ..display import display_url
96a98
> self.person_label.set_use_markup(True)
103a106
> self.person_label.connect('activate_link', self.on_person_label_activate_link)
122c125,126
< self.person_label.set_text(name_displayer.display(p))
---
> self.person_label.set_markup("<a href='gramps://Person/handle/" + p.get_handle() + "'>" + name_displayer.display(p) + "</a>")
> # self.person_label.set_text(name_displayer.display(p))
169c173,174
< self.person_label.set_text(name_displayer.display(person))
---
> self.person_label.set_markup("<a href='gramps://Person/handle/" + person.get_handle() + "'>" + name_displayer.display(person) + "</a>")
> # self.person_label.set_text(name_displayer.display(person))
170a176,206
>
> def find_parent_with_attr(self, attr="dbstate"):
> """
> """
> # Find a parent with attr:
> obj = self
> while obj:
> if hasattr(obj, attr):
> break
> obj = obj.get_parent()
> return obj
>
> def on_person_label_activate_link(self, widget, uri):
> """
> Handle the standard gtk interface for activate_link.
> """
> # this is stupid
> if uri.startswith("gramps://"):
> # if in a window:
> win_obj = self.find_parent_with_attr(attr="dbstate")
> if win_obj:
> # Edit the object:
> obj_class, prop, value = uri[9:].split("/")
> from ..editors import EditObject
> EditObject(win_obj.dbstate,
> win_obj.uistate,
> win_obj.track,
> obj_class, prop, value)
> return
>
> display_url(uri)