From f7585d2e1cca140083dab7669c6b4e1f35cb9fe7 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Thu, 19 Jan 2006 02:06:27 +0000 Subject: [PATCH] * src/GrampsWidgets.py: edit label for column header svn: r5792 --- gramps2/ChangeLog | 1 + gramps2/src/DisplayTabs.py | 13 ++++++++++--- gramps2/src/EditFamily.py | 14 +++++--------- gramps2/src/GrampsWidgets.py | 24 ++++++++++++++++++++++-- 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index e97c6811c..82d8536f6 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,4 +1,5 @@ 2006-01-18 Don Allingham + * src/GrampsWidgets.py: edit label for column header * src/DisplayTabs.py: mediatab improvements * src/EditFamily.py: monitor for changed people and update if needed, CellRendererCombo for child relations diff --git a/gramps2/src/DisplayTabs.py b/gramps2/src/DisplayTabs.py index f2cd332da..a77d1ac5a 100644 --- a/gramps2/src/DisplayTabs.py +++ b/gramps2/src/DisplayTabs.py @@ -366,10 +366,17 @@ class ChildModel(gtk.ListStore): index += 1 def display_rel(self,rtype): - if rtype[0] == RelLib.Family.CUSTOM: - return unicode(rtype[1]) + if type(rtype) == tuple: + rel = rtype[0] + val = rtype[1] else: - return Utils.child_relations[rtype[0]] + rel = rtype + val = "???" + + if rel == RelLib.Family.CUSTOM: + return unicode(val) + else: + return Utils.child_relations[rel] def column_father_rel(self,data): chandle = data.handle diff --git a/gramps2/src/EditFamily.py b/gramps2/src/EditFamily.py index 1781a89b4..0006f86e2 100644 --- a/gramps2/src/EditFamily.py +++ b/gramps2/src/EditFamily.py @@ -120,18 +120,14 @@ class ChildEmbedList(EmbeddedList): continue name = self.column_names[pair[1]][0] if pair[1] == 4 or pair[1] == 5: - model = gtk.ListStore(str,int) - for x in Utils.child_relations.keys(): - model.append(row=[Utils.child_relations[x],x]) - render = gtk.CellRendererCombo() - render.set_property('editable',True) - render.set_property('model',model) - render.set_property('text-column',0) + + render = TypeCellRenderer(Utils.child_relations) + column = gtk.TreeViewColumn(name, render, text=pair[1]) + column.set_widget(EditLabel(name)) else: render = gtk.CellRendererText() + column = gtk.TreeViewColumn(name, render, text=pair[1]) - column = gtk.TreeViewColumn(name, render, text=pair[1]) - column = gtk.TreeViewColumn(name, render, text=pair[1]) column.set_resizable(True) column.set_min_width(40) column.set_sort_column_id(self.column_names[pair[1]][1]) diff --git a/gramps2/src/GrampsWidgets.py b/gramps2/src/GrampsWidgets.py index 48712ddcb..c53f43211 100644 --- a/gramps2/src/GrampsWidgets.py +++ b/gramps2/src/GrampsWidgets.py @@ -94,6 +94,15 @@ class LinkBox(gtk.HBox): self.pack_start(button,False) self.show() +class EditLabel(gtk.HBox): + def __init__(self,text): + gtk.HBox.__init__(self) + self.pack_start(BasicLabel(text),False) + self.pack_start(gtk.image_new_from_stock(gtk.STOCK_EDIT, + gtk.ICON_SIZE_MENU),False) + self.set_spacing(4) + self.show_all() + class BasicLabel(gtk.Label): def __init__(self,text): @@ -101,7 +110,6 @@ class BasicLabel(gtk.Label): self.set_alignment(0,0.5) self.show() - class MarkupLabel(gtk.Label): def __init__(self,text): @@ -110,7 +118,6 @@ class MarkupLabel(gtk.Label): self.set_use_markup(True) self.show() - class IntEdit(gtk.Entry): """An gtk.Edit widget that only allows integers.""" @@ -140,3 +147,16 @@ class IntEdit(gtk.Entry): widget.handler_unblock(self._signal) # set the correct position in the widget widget.set_position(pos + len(text)) + +class TypeCellRenderer(gtk.CellRendererCombo): + + def __init__(self,values): + gtk.CellRendererCombo.__init__(self) + + model = gtk.ListStore(str,int) + for key in values: + model.append(row=[values[key],key]) + self.set_property('editable',True) + self.set_property('model',model) + self.set_property('text-column',0) +