* src/const.py.in: eliminate zipcmd
* src/docgen/OpenSpreadSheet.py: eliminate the need for ZIP, use python zipfile module instead * src/plugins/EventCmp.py (DisplayChart.on_save_clicked): fix rows, double lines no longer used * configure.in: add check for vfs bindings, eliminate the check for swig and zip * gramps.spec.in (Requires): Added gnome-python2-gnomevfs dependency svn: r2577
This commit is contained in:
		
							
								
								
									
										24
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								configure.in
									
									
									
									
									
								
							| @@ -45,8 +45,6 @@ pkgpythondir=\${prefix}/share/\${PACKAGE} | ||||
| pkgpyexecdir=\${prefix}/share/\${PACKAGE} | ||||
|  | ||||
| AC_PATH_PROG(BINSH, sh) | ||||
| AC_PATH_PROG(SWIG, swig) | ||||
|  | ||||
| AC_PATH_PROG(ZIP, zip) | ||||
|  | ||||
| AC_PROG_CC | ||||
| @@ -159,6 +157,28 @@ then | ||||
| fi | ||||
| AC_MSG_RESULT(ok) | ||||
|  | ||||
| AC_MSG_CHECKING(Python bindings for GNOME VFS) | ||||
| cat > conftest.py <<EOF | ||||
| $pygtk_require | ||||
| try: | ||||
|     # Do not import gnome.canvas, this can raise a RuntimeError if the | ||||
|     # display cannot be opened.  Just search it. | ||||
|     import imp | ||||
|     imp.find_module('gnome/vfs') | ||||
|     out("YES") | ||||
| except ImportError: | ||||
|     out("NO") | ||||
| EOF | ||||
| $PYTHON conftest.py | ||||
| has_vfs=`cat conftest.out` | ||||
| rm -f conftest.out conftest.py | ||||
| if test YES != "$has_vfs" | ||||
| then | ||||
|    AC_MSG_ERROR([ | ||||
| **** The python bindings for GNOME canvas (gnome-python2-canvas) could not be found.]) | ||||
| fi | ||||
| AC_MSG_RESULT(ok) | ||||
|  | ||||
| AC_MSG_CHECKING(Python bindin for glade) | ||||
| cat > conftest.py <<EOF | ||||
| $pygtk_require | ||||
|   | ||||
| @@ -22,6 +22,7 @@ Requires: python >= 2.2 | ||||
| Requires: gnome-python2 >= 1.99 | ||||
| Requires: gnome-python2-gconf >= 1.99 | ||||
| Requires: gnome-python2-canvas >= 1.99 | ||||
| Requires: gnome-python2-gnomevfs >= 1.99 | ||||
| Requires: pygtk2 >= 1.99 | ||||
| Requires: pygtk2-libglade >= 1.99 | ||||
|  | ||||
|   | ||||
| @@ -40,7 +40,6 @@ from gettext import gettext as _ | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| editor  = "gimp" | ||||
| zipcmd  = "zip -r -q" | ||||
| convert = "convert" | ||||
|  | ||||
| pixdir = "/usr/share/pixmaps" | ||||
|   | ||||
| @@ -18,16 +18,32 @@ | ||||
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
| # | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # Standard Python Modules  | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import os | ||||
| import tempfile | ||||
| import string | ||||
| import zipfile | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # Gramps modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import BaseDoc | ||||
| from SpreadSheetDoc import * | ||||
|  | ||||
| from latin_utf8 import latin_to_utf8 | ||||
| import const | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # OpenSpreadSheet | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| class OpenSpreadSheet(SpreadSheetDoc): | ||||
|  | ||||
|     def __init__(self,type,orientation): | ||||
| @@ -48,13 +64,16 @@ class OpenSpreadSheet(SpreadSheetDoc): | ||||
|             self.filename = filename + ".sxc" | ||||
|         else: | ||||
|             self.filename = filename | ||||
|              | ||||
|         self.tempdir = tempfile.TemporaryFile() | ||||
|         os.mkdir(self.tempdir,0700) | ||||
|         os.mkdir(self.tempdir + os.sep + "Pictures") | ||||
|         os.mkdir(self.tempdir + os.sep + "META-INF") | ||||
|              | ||||
|         self.f = open(self.tempdir + os.sep + "content.xml","w") | ||||
|  | ||||
|         try: | ||||
|             self.content_xml = tempfile.mktemp() | ||||
|             self.f = open(self.content_xml,"wb") | ||||
|         except IOError,msg: | ||||
|             raise Errors.ReportError(_("Could not create %s") % self.content_xml, msg) | ||||
|         except: | ||||
|             raise Errors.ReportError(_("Could not create %s") % self.content_xml) | ||||
|  | ||||
|         self.f = open(self.content_xml,"w") | ||||
|         self.f.write('<?xml version="1.0" encoding="UTF-8"?>\n') | ||||
|         self.f.write('<office:document-content ') | ||||
|         self.f.write('xmlns:office="http://openoffice.org/2000/office" ') | ||||
| @@ -182,25 +201,31 @@ class OpenSpreadSheet(SpreadSheetDoc): | ||||
|  | ||||
|     def _write_zip(self): | ||||
|          | ||||
|         if os.path.isfile(self.filename): | ||||
|             os.unlink(self.filename) | ||||
|         file = zipfile.ZipFile(self.filename,"w",zipfile.ZIP_DEFLATED) | ||||
|         file.write(self.manifest_xml,str("META-INF/manifest.xml")) | ||||
|         file.write(self.content_xml,str("content.xml")) | ||||
|         file.write(self.meta_xml,str("meta.xml")) | ||||
|         file.write(self.styles_xml,str("styles.xml")) | ||||
|         file.close() | ||||
|  | ||||
|         os.system("cd " + self.tempdir + "; " + const.zipcmd + " " \ | ||||
|                   + self.filename + " .") | ||||
|  | ||||
|         os.unlink(self.tempdir + os.sep + "META-INF" + os.sep + "manifest.xml") | ||||
|         os.unlink(self.tempdir + os.sep + "content.xml") | ||||
|         os.unlink(self.tempdir + os.sep + "meta.xml") | ||||
|         os.unlink(self.tempdir + os.sep + "styles.xml") | ||||
| #        for image in self.image_list: | ||||
| #            os.unlink(self.tempdir + os.sep + "Pictures" + os.sep + image) | ||||
|         os.rmdir(self.tempdir + os.sep + "Pictures") | ||||
|         os.rmdir(self.tempdir + os.sep + "META-INF") | ||||
|         os.rmdir(self.tempdir) | ||||
|         os.unlink(self.manifest_xml) | ||||
|         os.unlink(self.content_xml) | ||||
|         os.unlink(self.meta_xml) | ||||
|         os.unlink(self.styles_xml) | ||||
|          | ||||
|     def _write_styles_file(self): | ||||
| 	file = self.tempdir + os.sep + "styles.xml" | ||||
| 	self.f = open(file,"w") | ||||
|         self.styles_xml = tempfile.mktemp() | ||||
|          | ||||
|         try: | ||||
|             self.f = open(self.styles_xml,"wb") | ||||
|         except IOError,msg: | ||||
|             errmsg = "%s\n%s" % (_("Could not create %s") % self.styles_xml, msg) | ||||
|             raise Errors.ReportError(errmsg) | ||||
|         except: | ||||
|             pass | ||||
|             raise Errors.ReportError(_("Could not create %s") % self.styles_xml) | ||||
|  | ||||
| 	self.f = open(self.styles_xml,"w") | ||||
| 	self.f.write('<?xml version="1.0" encoding="UTF-8"?>\n') | ||||
| 	self.f.write('<office:document-styles ') | ||||
| 	self.f.write('xmlns:office="http://openoffice.org/2000/office" ') | ||||
| @@ -364,8 +389,18 @@ class OpenSpreadSheet(SpreadSheetDoc): | ||||
| 	self.f.write(latin_to_utf8(text)) | ||||
|  | ||||
|     def _write_manifest(self): | ||||
| 	file = self.tempdir + os.sep + "META-INF" + os.sep + "manifest.xml" | ||||
| 	self.f = open(file,"w") | ||||
|         self.manifest_xml = tempfile.mktemp() | ||||
|  | ||||
|         try: | ||||
|             self.f = open(self.manifest_xml,"wb") | ||||
|         except IOError,msg: | ||||
|             errmsg = "%s\n%s" % (_("Could not create %s") % self.manifest_xml, msg) | ||||
|             raise Errors.ReportError(errmsg) | ||||
|         except: | ||||
|             pass | ||||
|             raise Errors.ReportError(_("Could not create %s") % self.manifest_xml) | ||||
|  | ||||
| 	self.f = open(self.manifest_xml,"w") | ||||
| 	self.f.write('<?xml version="1.0" encoding="UTF-8"?>\n') | ||||
| 	self.f.write('<manifest:manifest ') | ||||
|         self.f.write('xmlns:manifest="http://openoffice.org/2001/manifest">') | ||||
| @@ -386,9 +421,19 @@ class OpenSpreadSheet(SpreadSheetDoc): | ||||
| 	self.f.close() | ||||
|  | ||||
|     def _write_meta_file(self): | ||||
| 	file = self.tempdir + os.sep + "meta.xml" | ||||
|         self.meta_xml = tempfile.mktemp() | ||||
|  | ||||
|         try: | ||||
|             self.f = open(self.meta_xml,"wb") | ||||
|         except IOError,msg: | ||||
|             errmsg = "%s\n%s" % (_("Could not create %s") % self.meta_xml, msg) | ||||
|             raise Errors.ReportError(errmsg) | ||||
|         except: | ||||
|             pass | ||||
|             raise Errors.ReportError(_("Could not create %s") % self.meta_xml) | ||||
|  | ||||
|         name = latin_to_utf8(self.name) | ||||
| 	self.f = open(file,"w") | ||||
| 	self.f = open(self.meta_xml,"w") | ||||
| 	self.f.write('<?xml version="1.0" encoding="UTF-8"?>\n') | ||||
| 	self.f.write('<office:document-meta ') | ||||
| 	self.f.write('xmlns:office="http://openoffice.org/2000/office" ') | ||||
|   | ||||
| @@ -333,11 +333,10 @@ class DisplayChart: | ||||
|         spreadsheet.write_table_head(self.event_titles) | ||||
|  | ||||
|         index = 0 | ||||
|         for (top,bottom) in self.row_data: | ||||
|         for top in self.row_data: | ||||
|             spreadsheet.set_row(index%2) | ||||
|             index = index + 1 | ||||
|             spreadsheet.write_table_data(top) | ||||
|             spreadsheet.write_table_data(bottom) | ||||
|  | ||||
|         spreadsheet.finalize() | ||||
|         Utils.destroy_passed_object(obj) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user