svn: r5740
This commit is contained in:
Don Allingham 2006-01-13 03:54:31 +00:00
parent 3977acd324
commit d068022254
2 changed files with 183 additions and 1 deletions

View File

@ -75,6 +75,85 @@ class EmbeddedList(gtk.HBox):
return gtk.Label('UNDEFINED')
class NoteTab(gtk.HBox):
def __init__(self, note_obj):
gtk.HBox.__init__(self)
self.note_obj = note_obj
self.text = gtk.TextView()
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
scroll.add_with_viewport(self.text)
self.pack_start(scroll,True)
if note_obj:
self.text.get_buffer().insert_at_cursor(note_obj.get())
self.show_all()
def rebuild(self):
pass
def get_tab_widget(self):
return gtk.Label(_('Note'))
class GalleryTab(gtk.HBox):
def __init__(self,db, media_list):
gtk.HBox.__init__(self)
self.db = db
self.media_list = media_list
self.hbox = gtk.HBox()
self.label = gtk.Label(_('Children'))
self.iconmodel= gtk.ListStore(gtk.gdk.Pixbuf,str)
self.iconlist = gtk.IconView()
self.iconlist.set_pixbuf_column(0)
self.iconlist.set_text_column(1)
self.iconlist.set_model(self.iconmodel)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
scroll.add_with_viewport(self.iconlist)
self.pack_start(scroll,True)
self.rebuild()
self.show_all()
def get_data(self):
return self.media_list
def rebuild(self):
for ref in self.media_list:
obj = self.db.get_object_from_handle(ref.get_reference_handle())
pixbuf = self.get_image(obj)
self.iconmodel.append(row=[pixbuf,obj.get_description()])
self.set_label()
def get_image(self,obj):
import ImgManip
mtype = obj.get_mime_type()
if mtype[0:5] == "image":
image = ImgManip.get_thumbnail_image(obj.get_path())
else:
image = GrampsMime.find_mime_type_pixbuf(mtype)
if not image:
image = gtk.gdk.pixbuf_new_from_file(const.icon)
return image
def get_tab_widget(self):
return self.label
def set_label(self):
if len(self.get_data()):
self.label.set_text("<b>%s</b>" % _('Gallery'))
self.label.set_use_markup(True)
else:
self.label.set_text(_('Gallery'))
#-------------------------------------------------------------------------
#
# ChildModel
@ -203,3 +282,45 @@ class EventRefModel(gtk.ListStore):
return self.db.get_place_from_handle(place_handle).get_title()
return u""
#-------------------------------------------------------------------------
#
# EventRefModel
#
#-------------------------------------------------------------------------
class AttrModel(gtk.ListStore):
def __init__(self,attr_list,db):
gtk.ListStore.__init__(self,str,str)
self.db = db
index = 1
for attr in attr_list:
self.append(row=[
self.type_name(attr),
attr.get_value(),
])
index += 1
def type_name(self, attr):
t = attr.get_type()
if t[0] == RelLib.Attribute.CUSTOM:
return t[1]
else:
return Utils.personal_attributes[t[0]]
class FamilyAttrModel(AttrModel):
def __init__(self,attr_list,db):
AttrModel.__init__(self,attr_list,db)
def type_name(self, attr):
t = attr.get_type()
if t[0] == RelLib.Attribute.CUSTOM:
return t[1]
else:
return Utils.family_attributes[t[0]]

View File

@ -97,6 +97,37 @@ class EventEmbedList(DisplayTabs.EmbeddedList):
def get_tab_widget(self):
return self.label
class AttrEmbedList(DisplayTabs.EmbeddedList):
column_names = [
(_('Type'),0),
(_('Value'),1),
]
def __init__(self,db,data):
self.data = data
self.hbox = gtk.HBox()
self.label = gtk.Label(_('Attributes'))
self.hbox.show_all()
DisplayTabs.EmbeddedList.__init__(self, db, DisplayTabs.FamilyAttrModel)
def get_data(self):
return self.data
def column_order(self):
return ((1,0),(1,1))
def set_label(self):
if len(self.get_data()):
self.label.set_text("<b>%s</b>" % _('Attributes'))
self.label.set_use_markup(True)
else:
self.label.set_text(_('Attributes'))
def get_tab_widget(self):
return self.label
class ChildEmbedList(DisplayTabs.EmbeddedList):
column_names = [
@ -114,10 +145,28 @@ class ChildEmbedList(DisplayTabs.EmbeddedList):
self.family = family
self.hbox = gtk.HBox()
self.label = gtk.Label(_('Children'))
self.add_btn = gtk.Button()
self.add_btn.add(gtk.image_new_from_stock(gtk.STOCK_ADD,
gtk.ICON_SIZE_BUTTON))
self.edit_btn = gtk.Button()
self.edit_btn.add(gtk.image_new_from_stock(gtk.STOCK_EDIT,
gtk.ICON_SIZE_BUTTON))
self.del_btn = gtk.Button()
self.del_btn.add(gtk.image_new_from_stock(gtk.STOCK_REMOVE,
gtk.ICON_SIZE_BUTTON))
self.hbox.show_all()
DisplayTabs.EmbeddedList.__init__(self, db, DisplayTabs.ChildModel)
self.set_spacing(6)
vbox = gtk.VBox()
vbox.set_spacing(6)
vbox.pack_start(self.add_btn,False)
vbox.pack_start(self.edit_btn,False)
vbox.pack_start(self.del_btn,False)
vbox.show_all()
self.pack_start(vbox,False)
def get_data(self):
return self.family.get_child_handle_list()
@ -202,6 +251,9 @@ class EditFamily(DisplayState.ManagedWindow):
self.child_list = ChildEmbedList(self.dbstate.db, self.family)
self.event_list = EventEmbedList(self.dbstate.db, self.family)
self.attr_list = AttrEmbedList(self.dbstate.db, self.family.get_attribute_list())
self.note_tab = DisplayTabs.NoteTab(self.family.get_note_object())
self.gallery_tab = DisplayTabs.GalleryTab(self.dbstate.db,self.family.get_media_list())
self.notebook.insert_page(self.child_list)
self.notebook.set_tab_label(self.child_list,self.child_list.get_tab_widget())
@ -209,6 +261,15 @@ class EditFamily(DisplayState.ManagedWindow):
self.notebook.insert_page(self.event_list)
self.notebook.set_tab_label(self.event_list,self.event_list.get_tab_widget())
self.notebook.insert_page(self.attr_list)
self.notebook.set_tab_label(self.attr_list,self.attr_list.get_tab_widget())
self.notebook.insert_page(self.note_tab)
self.notebook.set_tab_label(self.note_tab,self.note_tab.get_tab_widget())
self.notebook.insert_page(self.gallery_tab)
self.notebook.set_tab_label(self.gallery_tab,self.gallery_tab.get_tab_widget())
self.gid.set_text(self.family.get_gramps_id())