7842: Fix custom place types in the place editor
Allow place type combobox to receive focus. Store custom place types in the metadata table.
This commit is contained in:
parent
7987e8c1d6
commit
6950679504
@ -864,6 +864,13 @@ class DbReadBase(object):
|
|||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def get_place_types(self):
|
||||||
|
"""
|
||||||
|
Return a list of all custom place types assocated with Place instances
|
||||||
|
in the database.
|
||||||
|
"""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
def gramps_upgrade(self):
|
def gramps_upgrade(self):
|
||||||
"""
|
"""
|
||||||
Return True if database is upgraded
|
Return True if database is upgraded
|
||||||
|
@ -420,6 +420,7 @@ class DbBsddbRead(DbReadBase, Callback):
|
|||||||
self.source_media_types = set()
|
self.source_media_types = set()
|
||||||
self.url_types = set()
|
self.url_types = set()
|
||||||
self.media_attributes = set()
|
self.media_attributes = set()
|
||||||
|
self.place_types = set()
|
||||||
|
|
||||||
self.open = 0
|
self.open = 0
|
||||||
self.genderStats = GenderStats()
|
self.genderStats = GenderStats()
|
||||||
@ -1633,6 +1634,13 @@ class DbBsddbRead(DbReadBase, Callback):
|
|||||||
"""
|
"""
|
||||||
return list(self.url_types)
|
return list(self.url_types)
|
||||||
|
|
||||||
|
def get_place_types(self):
|
||||||
|
"""
|
||||||
|
Return a list of all custom place types assocated with Place instances
|
||||||
|
in the database.
|
||||||
|
"""
|
||||||
|
return list(self.place_types)
|
||||||
|
|
||||||
def __log_error(self):
|
def __log_error(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -970,6 +970,7 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
|
|||||||
self.url_types = set(meta(b'url_types'))
|
self.url_types = set(meta(b'url_types'))
|
||||||
self.media_attributes = set(meta(b'mattr_names'))
|
self.media_attributes = set(meta(b'mattr_names'))
|
||||||
self.event_attributes = set(meta(b'eattr_names'))
|
self.event_attributes = set(meta(b'eattr_names'))
|
||||||
|
self.place_types = set(meta(b'place_types'))
|
||||||
|
|
||||||
# surname list
|
# surname list
|
||||||
self.surname_list = meta(b'surname_list')
|
self.surname_list = meta(b'surname_list')
|
||||||
@ -1442,6 +1443,7 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
|
|||||||
txn.put(b'url_types', list(self.url_types))
|
txn.put(b'url_types', list(self.url_types))
|
||||||
txn.put(b'mattr_names', list(self.media_attributes))
|
txn.put(b'mattr_names', list(self.media_attributes))
|
||||||
txn.put(b'eattr_names', list(self.event_attributes))
|
txn.put(b'eattr_names', list(self.event_attributes))
|
||||||
|
txn.put(b'place_types', list(self.place_types))
|
||||||
|
|
||||||
# name display formats
|
# name display formats
|
||||||
txn.put(b'surname_list', self.surname_list)
|
txn.put(b'surname_list', self.surname_list)
|
||||||
@ -2017,6 +2019,9 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
|
|||||||
self.commit_base(place, self.place_map, PLACE_KEY,
|
self.commit_base(place, self.place_map, PLACE_KEY,
|
||||||
transaction, change_time)
|
transaction, change_time)
|
||||||
|
|
||||||
|
if place.get_type().is_custom():
|
||||||
|
self.place_types.add(str(place.get_type()))
|
||||||
|
|
||||||
self.url_types.update([str(url.type) for url in place.urls
|
self.url_types.update([str(url.type) for url in place.urls
|
||||||
if url.type.is_custom()])
|
if url.type.is_custom()])
|
||||||
|
|
||||||
|
@ -132,7 +132,9 @@ class EditPlace(EditPrimary):
|
|||||||
|
|
||||||
self.place_type = MonitoredDataType(self.top.get_object("place_type"),
|
self.place_type = MonitoredDataType(self.top.get_object("place_type"),
|
||||||
self.obj.set_type,
|
self.obj.set_type,
|
||||||
self.obj.get_type)
|
self.obj.get_type,
|
||||||
|
self.db.readonly,
|
||||||
|
self.db.get_place_types())
|
||||||
|
|
||||||
self.code = MonitoredEntry(
|
self.code = MonitoredEntry(
|
||||||
self.top.get_object("code_entry"),
|
self.top.get_object("code_entry"),
|
||||||
|
@ -354,12 +354,13 @@ You can set these values via the Geography View by searching the place, or via a
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkComboBox" id="place_type">
|
<object class="GtkComboBox" id="place_type">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">What type of place this is. Eg 'Country', 'City', ... .</property>
|
<property name="tooltip_text" translatable="yes">What type of place this is. Eg 'Country', 'City', ... .</property>
|
||||||
<property name="has_entry">True</property>
|
<property name="has_entry">True</property>
|
||||||
<child internal-child="entry">
|
<child internal-child="entry">
|
||||||
<object class="GtkEntry" id="combobox-entry2">
|
<object class="GtkEntry" id="combobox-entry2">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="overwrite_mode">True</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
Loading…
Reference in New Issue
Block a user