* src/WriteGedcom.py: Media objects for families, preparation for

media objects for other entities


svn: r5342
This commit is contained in:
Julio Sánchez 2005-10-22 05:23:09 +00:00
parent ac6ab25ef6
commit e6159b281e
2 changed files with 50 additions and 33 deletions

View File

@ -1,3 +1,7 @@
2005-10-22 Julio Sanchez <jsanchez@users.sourceforge.net>
* src/WriteGedcom.py: Media objects for families, preparation for
media objects for other entities
2005-10-20 Don Allingham <don@gramps-project.org>
* src/plugins/DetDescendantReport.py: bring in line with
DetAncestralReport

View File

@ -751,6 +751,16 @@ class GedcomWriter:
for srcref in family.get_source_references():
self.write_source_ref(1,srcref)
if self.images:
photos = family.get_media_list ()
else:
photos = []
for photo in photos:
if self.private and photo.get_privacy():
continue
self.write_photo(photo,1)
self.write_change(1,family.get_change_time())
def write_sources(self):
@ -969,39 +979,7 @@ class GedcomWriter:
for photo in photos:
if self.private and photo.get_privacy():
continue
photo_obj_id = photo.get_reference_handle()
photo_obj = self.db.get_object_from_handle(photo_obj_id)
print photo_obj, photo_obj.get_mime_type()
if photo_obj and photo_obj.get_mime_type() == "image/jpeg":
path = photo_obj.get_path ()
imgdir = os.path.join(self.dirname,self.images_path)
if not os.path.isfile(path):
continue
try:
if not os.path.isdir(imgdir):
os.makedirs(imgdir)
except:
continue
basename = os.path.basename(path)
dest = os.path.join (imgdir, basename)
if dest != path:
try:
shutil.copyfile(path, dest)
except (IOError,OSError),msg:
msg2 = _("Could not create %s") % dest
WarningDialog(msg2,str(msg))
continue
self.writeln('1 OBJE')
self.writeln('2 FORM jpeg')
self.writeln('2 TITL %s' % photo_obj.get_description())
dirname = os.path.join (self.dirname, self.images_path)
basename = os.path.basename (path)
self.writeln('2 FILE %s' % os.path.join(self.images_path,
basename))
if photo_obj.get_note():
self.write_long_text("NOTE",2,self.cnvtxt(photo_obj.get_note()))
self.write_photo(photo,1)
for family in person.get_parent_family_handle_list():
if self.flist.has_key(family[0]):
@ -1246,6 +1224,41 @@ class GedcomWriter:
if ref.get_note():
self.write_long_text("NOTE",level+1,self.cnvtxt(ref.get_note()))
def write_photo(self,photo,level):
photo_obj_id = photo.get_reference_handle()
photo_obj = self.db.get_object_from_handle(photo_obj_id)
print photo_obj, photo_obj.get_mime_type()
if photo_obj and photo_obj.get_mime_type() == "image/jpeg":
path = photo_obj.get_path ()
imgdir = os.path.join(self.dirname,self.images_path)
if not os.path.isfile(path):
return
try:
if not os.path.isdir(imgdir):
os.makedirs(imgdir)
except:
return
basename = os.path.basename(path)
dest = os.path.join (imgdir, basename)
if dest != path:
try:
shutil.copyfile(path, dest)
shutil.copystat(path, dest)
except (IOError,OSError),msg:
msg2 = _("Could not create %s") % dest
WarningDialog(msg2,str(msg))
return
self.writeln('%d OBJE' % level)
self.writeln('%d FORM jpeg' % (level+1) )
self.writeln('%d TITL %s' % (level+1, photo_obj.get_description()))
dirname = os.path.join (self.dirname, self.images_path)
basename = os.path.basename (path)
self.writeln('%d FILE %s' % (level+1,os.path.join(self.images_path,
basename)))
if photo_obj.get_note():
self.write_long_text("NOTE",level+1,self.cnvtxt(photo_obj.get_note()))
def fid(self,id):
family = self.db.get_family_from_handle (id)
return family.get_gramps_id ()