Add a title preview to the place editors

This commit is contained in:
Nick Hall
2015-05-12 23:00:20 +01:00
parent 0eb027a095
commit f0bfce68c2
5 changed files with 93 additions and 38 deletions

View File

@@ -61,9 +61,10 @@ class PlaceRefEmbedList(EmbeddedList):
(_('Date'), 3, 150, TEXT_COL, -1, None), (_('Date'), 3, 150, TEXT_COL, -1, None),
] ]
def __init__(self, dbstate, uistate, track, data, handle): def __init__(self, dbstate, uistate, track, data, handle, callback):
self.data = data self.data = data
self.handle = handle self.handle = handle
self.callback = callback
EmbeddedList.__init__(self, dbstate, uistate, track, EmbeddedList.__init__(self, dbstate, uistate, track,
_('Enclosed By'), PlaceRefModel, _('Enclosed By'), PlaceRefModel,
share_button=True, move_buttons=True) share_button=True, move_buttons=True)
@@ -132,6 +133,9 @@ class PlaceRefEmbedList(EmbeddedList):
def edit_callback(self, ref, place): def edit_callback(self, ref, place):
self.rebuild() self.rebuild()
def post_rebuild(self, prebuildpath):
self.callback()
def handle_extra_type(self, objtype, obj): def handle_extra_type(self, objtype, obj):
if obj in self.get_skip_list(self.handle): if obj in self.get_skip_list(self.handle):
ErrorDialog(_("Place cycle detected"), ErrorDialog(_("Place cycle detected"),

View File

@@ -115,7 +115,8 @@ class EditPlace(EditPrimary):
self.name = MonitoredEntry(self.top.get_object("name_entry"), self.name = MonitoredEntry(self.top.get_object("name_entry"),
self.obj.set_name, self.obj.get_name, self.obj.set_name, self.obj.get_name,
self.db.readonly) self.db.readonly,
changed=self.name_changed)
self.gid = MonitoredEntry(self.top.get_object("gid"), self.gid = MonitoredEntry(self.top.get_object("gid"),
self.obj.set_gramps_id, self.obj.set_gramps_id,
@@ -167,6 +168,13 @@ class EditPlace(EditPrimary):
return ValidationError(_("Invalid longitude (syntax: 18\u00b09'") + return ValidationError(_("Invalid longitude (syntax: 18\u00b09'") +
_('48.21"E, -18.2412 or -18:9:48.21)')) _('48.21"E, -18.2412 or -18:9:48.21)'))
def update_title(self):
new_title = place_displayer.display(self.db, self.obj)
self.top.get_object("preview_title").set_text(new_title)
def name_changed(self, obj):
self.update_title()
def build_menu_names(self, place): def build_menu_names(self, place):
return (_('Edit Place'), self.get_menu_title()) return (_('Edit Place'), self.get_menu_title())
@@ -182,7 +190,8 @@ class EditPlace(EditPrimary):
self.uistate, self.uistate,
self.track, self.track,
self.obj.get_placeref_list(), self.obj.get_placeref_list(),
self.obj.handle) self.obj.handle,
self.update_title)
self._add_tab(notebook, self.placeref_list) self._add_tab(notebook, self.placeref_list)
self.track_ref_for_deletion("placeref_list") self.track_ref_for_deletion("placeref_list")

View File

@@ -35,6 +35,7 @@ from gramps.gen.lib import NoteType
from gramps.gen.db import DbTxn from gramps.gen.db import DbTxn
from gramps.gen.errors import ValidationError from gramps.gen.errors import ValidationError
from gramps.gen.utils.place import conv_lat_lon from gramps.gen.utils.place import conv_lat_lon
from gramps.gen.display.place import displayer as place_displayer
from gramps.gen.config import config from gramps.gen.config import config
from gramps.gen.const import GRAMPS_LOCALE as glocale from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext _ = glocale.translation.gettext
@@ -113,7 +114,8 @@ class EditPlaceRef(EditReference):
self.name = MonitoredEntry(self.top.get_object("name_entry"), self.name = MonitoredEntry(self.top.get_object("name_entry"),
self.source.set_name, self.source.get_name, self.source.set_name, self.source.get_name,
self.db.readonly) self.db.readonly,
changed=self.name_changed)
self.gid = MonitoredEntry(self.top.get_object("gid"), self.gid = MonitoredEntry(self.top.get_object("gid"),
self.source.set_gramps_id, self.source.set_gramps_id,
@@ -165,6 +167,13 @@ class EditPlaceRef(EditReference):
return ValidationError(_("Invalid longitude (syntax: 18\u00b09'") + return ValidationError(_("Invalid longitude (syntax: 18\u00b09'") +
_('48.21"E, -18.2412 or -18:9:48.21)')) _('48.21"E, -18.2412 or -18:9:48.21)'))
def update_title(self):
new_title = place_displayer.display(self.db, self.source)
self.top.get_object("preview_title").set_text(new_title)
def name_changed(self, obj):
self.update_title()
def _create_tabbed_pages(self): def _create_tabbed_pages(self):
""" """
Create the notebook tabs and inserts them into the main Create the notebook tabs and inserts them into the main
@@ -183,7 +192,8 @@ class EditPlaceRef(EditReference):
self.uistate, self.uistate,
self.track, self.track,
self.source.get_placeref_list(), self.source.get_placeref_list(),
self.source.handle) self.source.handle,
self.update_title)
self._add_tab(notebook, self.placeref_list) self._add_tab(notebook, self.placeref_list)
self.track_ref_for_deletion("placeref_list") self.track_ref_for_deletion("placeref_list")

View File

@@ -94,7 +94,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">0</property> <property name="top_attach">1</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -109,7 +109,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -124,7 +124,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -137,7 +137,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">0</property> <property name="top_attach">1</property>
<property name="width">4</property> <property name="width">4</property>
</packing> </packing>
</child> </child>
@@ -152,7 +152,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -167,7 +167,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -182,7 +182,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -236,7 +236,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -266,7 +266,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">4</property> <property name="left_attach">4</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -278,7 +278,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">4</property> <property name="left_attach">4</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -290,7 +290,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -302,7 +302,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -315,7 +315,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -334,7 +334,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -346,7 +346,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -358,7 +358,23 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="preview_title">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">6</property>
<property name="xalign">0</property>
<attributes>
<attribute name="font-desc" value="Sans Bold 12"/>
</attributes>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">5</property>
</packing> </packing>
</child> </child>
<child> <child>

View File

@@ -200,7 +200,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">0</property> <property name="top_attach">1</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -214,7 +214,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -229,7 +229,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -242,7 +242,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -285,7 +285,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">4</property> <property name="top_attach">5</property>
<property name="width">5</property> <property name="width">5</property>
</packing> </packing>
</child> </child>
@@ -300,7 +300,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -314,7 +314,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -333,7 +333,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -363,7 +363,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">4</property> <property name="left_attach">4</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -376,7 +376,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">0</property> <property name="top_attach">1</property>
<property name="width">4</property> <property name="width">4</property>
</packing> </packing>
</child> </child>
@@ -390,7 +390,7 @@
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -405,7 +405,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -420,7 +420,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -474,7 +474,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -486,7 +486,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -498,7 +498,7 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -510,7 +510,23 @@ You can set these values via the Geography View by searching the place, or via a
</object> </object>
<packing> <packing>
<property name="left_attach">4</property> <property name="left_attach">4</property>
<property name="top_attach">3</property> <property name="top_attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="preview_title">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">6</property>
<property name="xalign">0</property>
<attributes>
<attribute name="font-desc" value="Sans Bold 12"/>
</attributes>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">5</property>
</packing> </packing>
</child> </child>
<child> <child>