diff --git a/src/gui/views/listview.py b/src/gui/views/listview.py index 209ebde6d..219ca63ec 100644 --- a/src/gui/views/listview.py +++ b/src/gui/views/listview.py @@ -92,7 +92,7 @@ class ListView(NavigationView): def __init__(self, title, dbstate, uistate, columns, handle_col, make_model, signal_map, get_bookmarks, bm_type, nav_group, - multiple=False, filter_class=None, markup=False): + multiple=False, filter_class=None, markup=None): NavigationView.__init__(self, title, dbstate, uistate, get_bookmarks, bm_type, nav_group) #default is listviews keep themself in sync with database @@ -111,7 +111,10 @@ class ListView(NavigationView): self.signal_map = signal_map self.multiple_selection = multiple self.generic_filter = None - self.markup_required = markup + if markup: + self.markup_columns = markup + else: + self.markup_columns = [] dbstate.connect('database-changed', self.change_db) def type_list(self): @@ -222,7 +225,7 @@ class ListView(NavigationView): mcol = self.model.marker_column() column.add_attribute(self.renderer, 'foreground', mcol) - if self.markup_required: + if pair[1] in self.markup_columns: column.add_attribute(self.renderer, 'markup', pair[1]) else: column.add_attribute(self.renderer, 'text', pair[1]) diff --git a/src/gui/views/treemodels/placemodel.py b/src/gui/views/treemodels/placemodel.py index 50fedb517..f792261af 100644 --- a/src/gui/views/treemodels/placemodel.py +++ b/src/gui/views/treemodels/placemodel.py @@ -318,19 +318,22 @@ class PlaceTreeModel(PlaceBaseModel, TreeBaseModel): self.add_node(node3, handle, sort_key, handle, add_parent=False) def column_name(self, data): - if data[2]: - return unicode(data[2]) - elif data[5] is not None: + name = '' + if data[5] is not None: level = [data[5][0][i] for i in range(4,-1,-1)] if not (level[3] or level[4]): - return unicode(level[2] or level[1] or level[0]) + name = unicode(level[2] or level[1] or level[0]) elif level[3] and level[4]: - return unicode(level[3] + ', ' + level[4]) + name = unicode(level[3] + ', ' + level[4]) elif level[3] or level[4]: - return unicode(level[3] or level[4]) - else: - return u"%s" % cgi.escape(_("")) - return unicode(data[2]) + name = unicode(level[3] or level[4]) + if not name: + name = unicode(data[2]) + + if name: + return cgi.escape(name) + else: + return u"%s" % cgi.escape(_("")) def column_header(self, node): """ diff --git a/src/plugins/lib/libpersonview.py b/src/plugins/lib/libpersonview.py index eabfaa099..a6a844145 100644 --- a/src/plugins/lib/libpersonview.py +++ b/src/plugins/lib/libpersonview.py @@ -96,6 +96,8 @@ class BasePersonView(ListView): _('Spouse'), _('Last Changed'), ] + # columns that contain markup + MARKUP_COLS = [COL_BDAT, COL_BPLAC, COL_DDAT, COL_DPLAC] # default setting with visible columns, order of the col, and their size CONFIGSETTINGS = ( ('columns.visible', [COL_NAME, COL_ID, COL_GEN, COL_BDAT, COL_DDAT]), @@ -127,7 +129,7 @@ class BasePersonView(ListView): Bookmarks.PersonBookmarks, nav_group, multiple=True, filter_class=PersonSidebarFilter, - markup=True) + markup=BasePersonView.MARKUP_COLS) self.func_list = { 'J' : self.jump, diff --git a/src/plugins/lib/libplaceview.py b/src/plugins/lib/libplaceview.py index d52588c35..0bfd4e190 100644 --- a/src/plugins/lib/libplaceview.py +++ b/src/plugins/lib/libplaceview.py @@ -99,6 +99,8 @@ class PlaceBaseView(ListView): _('Last Changed'), _('Street'), ] + # columns that contain markup + MARKUP_COLS = [COL_NAME] # default setting with visible columns, order of the col, and their size CONFIGSETTINGS = ( ('columns.visible', [COL_NAME, COL_ID, COL_STREET, COL_CITY, COL_STATE @@ -116,7 +118,7 @@ class PlaceBaseView(ListView): QR_CATEGORY = CATEGORY_QR_PLACE def __init__(self, dbstate, uistate, title, model, nav_group, - markup=False): + markup=None): signal_map = { 'place-add' : self.row_add, diff --git a/src/plugins/view/placetreeview.py b/src/plugins/view/placetreeview.py index 49310da63..471b32a37 100644 --- a/src/plugins/view/placetreeview.py +++ b/src/plugins/view/placetreeview.py @@ -55,7 +55,7 @@ class PlaceTreeView(PlaceBaseView): def __init__(self, dbstate, uistate): PlaceBaseView.__init__(self, dbstate, uistate, _('Place Tree View'), PlaceTreeModel, - nav_group=0, markup=True) + nav_group=0, markup=PlaceBaseView.MARKUP_COLS) def type_list(self): """