diff --git a/gramps2/src/EditRepository.py b/gramps2/src/EditRepository.py
index e730e2b7e..c28ac5fbd 100644
--- a/gramps2/src/EditRepository.py
+++ b/gramps2/src/EditRepository.py
@@ -303,10 +303,10 @@ class EditRepository:
self.name.set_editable(mode)
self.type = self.top_window.get_widget("repository_type")
- AutoComp.fill_combo(self.type,[ repos_type for repos_type \
- in self.db.get_repository_type_list() \
- if repos_type != '' ])
- self.type.child.set_text(repository.get_type())
+ self.type_selector = AutoComp.StandardCustomSelector( \
+ Utils.repository_types,self.type,
+ RelLib.Repository.CUSTOM,RelLib.Repository.LIBRARY)
+ self.type_selector.set_values(repository.get_type())
self.street = self.top_window.get_widget("repository_street")
self.street.set_text(repository.get_address().get_parish())
@@ -493,7 +493,7 @@ class EditRepository:
if name != self.repository.get_name():
self.repository.set_name(name)
- repos_type = unicode(self.type.child.get_text())
+ repos_type = self.type_selector.get_values()
if repos_type != self.repository.get_type():
self.repository.set_type(repos_type)
diff --git a/gramps2/src/ListModel.py b/gramps2/src/ListModel.py
index 9bd13cfaa..f8b5937ff 100644
--- a/gramps2/src/ListModel.py
+++ b/gramps2/src/ListModel.py
@@ -42,7 +42,7 @@ class ListModel:
self.mylist = []
self.data_index = 0
for l in dlist:
- if l[3] == TOGGLE:
+ if l[2] == TOGGLE:
self.mylist.append(TYPE_BOOLEAN)
else:
self.mylist.append(TYPE_STRING)
diff --git a/gramps2/src/RelLib.py b/gramps2/src/RelLib.py
index ccb8fbdbf..6b812c5f8 100644
--- a/gramps2/src/RelLib.py
+++ b/gramps2/src/RelLib.py
@@ -4389,11 +4389,23 @@ class RepoRef(BaseObject,NoteBase):
class Repository(PrimaryObject,NoteBase):
"""A location where collections of Sources are found"""
+ UNKNOWN = -1
+ CUSTOM = 0
+ LIBRARY = 1
+ CEMETERY = 2
+ CHURCH = 3
+ ARCHIVE = 4
+ ALBUM = 5
+ WEBSITE = 6
+ BOOKSTORE = 7
+ COLLECTION = 8
+ SAFE = 9
+
def __init__(self):
"""creates a new Repository instance"""
PrimaryObject.__init__(self)
NoteBase.__init__(self)
- self.type = ""
+ self.type = (Repository.LIBRARY,"")
self.name = ""
self.address = Location()
self.email = ""
@@ -4424,7 +4436,7 @@ class Repository(PrimaryObject,NoteBase):
@return: Returns the list of all textual attributes of the object.
@rtype: list
"""
- return [self.name,self.email,self.search_url,self.home_url]
+ return [self.name,self.type[1],self.email,self.search_url,self.home_url]
def get_text_data_child_list(self):
"""
diff --git a/gramps2/src/RepositoryRefEdit.py b/gramps2/src/RepositoryRefEdit.py
index 781879119..65a772343 100644
--- a/gramps2/src/RepositoryRefEdit.py
+++ b/gramps2/src/RepositoryRefEdit.py
@@ -51,7 +51,7 @@ import Date
import DateEdit
import DateHandler
import GrampsDBCallback
-
+import AutoComp
#-------------------------------------------------------------------------
@@ -103,6 +103,9 @@ class RepositoryRefEditBase:
self.media_type = self.get_widget("repos_ref_media_type")
+ self.media_type_selector = AutoComp.StandardCustomSelector( \
+ Utils.source_media_types,self.media_type,
+ RelLib.RepoRef.CUSTOM,RelLib.RepoRef.MANUSCRIPT)
self.call_number = self.get_widget("repos_ref_callnumber")
self.note = self.get_widget("repos_ref_note")
@@ -228,9 +231,9 @@ class RepositoryRefEdit(RepositoryRefEditBase):
repos = self.db.get_repository_from_handle(idval)
self.active_repos = repos
if repos:
- self.type.set_text(repos.get_type())
- else:
- self.type.set_text("")
+ self.type.set_text(repos.get_type()[1])
+ else:
+ self.type.set_text("")
self.active_repos = sel
if sel:
@@ -272,6 +275,9 @@ class RepositoryRefEdit(RepositoryRefEditBase):
self.repos_ref.set_reference_handle(self.active_repos.get_handle())
# handle type here.
+ the_type = self.media_type_selector.get_values()
+ if the_type != self.repos_ref.get_media_type():
+ self.repos_ref.set_media_type(the_type)
buf = self.note.get_buffer()
note = unicode(buf.get_text(buf.get_start_iter(),
@@ -289,7 +295,7 @@ class RepositoryRefEdit(RepositoryRefEditBase):
def on_source_changed(self,obj):
handle = self.handle_list[obj.get_active()]
self.active_repos = self.db.get_repository_from_handle(handle)
- self.type.set_text(self.active_repos.get_type())
+ self.type.set_text(self.active_repos.get_type()[1])
self.set_button()
pass
diff --git a/gramps2/src/Utils.py b/gramps2/src/Utils.py
index 78737a473..6247dc3a1 100644
--- a/gramps2/src/Utils.py
+++ b/gramps2/src/Utils.py
@@ -214,6 +214,20 @@ event_roles = {
RelLib.EventRef.GROOM : _("Groom"),
RelLib.EventRef.WITNESS : _("Witness"),
}
+
+repository_types = {
+ RelLib.Repository.UNKNOWN : _("Unknown"),
+ RelLib.Repository.CUSTOM : _("Custom"),
+ RelLib.Repository.LIBRARY : _("Library"),
+ RelLib.Repository.CEMETERY : _("Cemetery"),
+ RelLib.Repository.CHURCH : _("Church"),
+ RelLib.Repository.ARCHIVE : _("Archive"),
+ RelLib.Repository.ALBUM : _("Album"),
+ RelLib.Repository.WEBSITE : _("Web site"),
+ RelLib.Repository.BOOKSTORE : _("Bookstore"),
+ RelLib.Repository.COLLECTION : _("Collection"),
+ RelLib.Repository.SAFE : _("Safe"),
+ }
#-------------------------------------------------------------------------
#
# Integer to GEDCOM tag mappings for constants
diff --git a/gramps2/src/gramps.glade b/gramps2/src/gramps.glade
index 79f0fbb0f..3c27f37cd 100644
--- a/gramps2/src/gramps.glade
+++ b/gramps2/src/gramps.glade
@@ -34059,24 +34059,6 @@ Family name Given name
-
-
- True
- Very Low
-Low
-Normal
-High
-Very High
-
-
- 2
- 4
- 5
- 6
- fill
-
-
-
True
@@ -34097,6 +34079,20 @@ Very High
+
+
+
+ True
+
+
+ 2
+ 4
+ 5
+ 6
+ fill
+ fill
+
+
0
@@ -34928,6 +34924,7 @@ Very High
0.5
0
0
+ er_sel_button
1