Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-01-31 23:54:17 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-01-31 23:54:17 (GMT)
commit5fc4926fbe2cf9e6d1e84d3241befc152d6afb81 (patch)
treeb2fc9469adb034c686f569a953033ff87315ccd3
parent2c57833688b6cd36b284de7194fdad7c5571087d (diff)
use save_to_callback() instead of save() to save files to zip
-rw-r--r--Document.py3
-rw-r--r--Utils.py16
2 files changed, 4 insertions, 15 deletions
diff --git a/Document.py b/Document.py
index 5db435a..6e8e7cf 100644
--- a/Document.py
+++ b/Document.py
@@ -82,9 +82,6 @@ def save(filepath):
zip.writestr('MANIFEST.xml', tostring(manifest, encoding='utf-8'))
zip.close()
- import shutil
- shutil.copy(filepath, '/tmp/foo.zip')
-
def load(filepath):
zip = Utils.Zip(filepath, 'r')
manifest = fromstring(zip.read('MANIFEST.xml'))
diff --git a/Utils.py b/Utils.py
index 6983c56..f71699b 100644
--- a/Utils.py
+++ b/Utils.py
@@ -16,6 +16,7 @@ import os
import gtk
import pango
import zipfile
+import cStringIO
from Theme import *
import sugar.graphics
@@ -23,26 +24,17 @@ from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.icon import Icon
-
class Zip(zipfile.ZipFile):
def __init__(self, *args):
zipfile.ZipFile.__init__(self, *args)
- """
def write_pixbuf(self, arcfile, pixbuf):
def push(data, buffer):
- buffer += data
+ buffer.write(data)
- buffer = ''
+ buffer = cStringIO.StringIO()
pixbuf.save_to_callback(push, 'png', user_data=buffer)
- self.writestr(arcfile, buffer)
- """
-
- def write_pixbuf(self, arcfile, pixbuf):
- tmpfile = os.path.join(SESSION_PATH, 'tmp.png')
- pixbuf.save(tmpfile, 'png')
- self.write(tmpfile, arcfile)
- os.unlink(tmpfile)
+ self.writestr(arcfile, buffer.getvalue())
def read_pixbuf(self, arcfile):
tmpfile = os.path.join(SESSION_PATH, 'tmp.png')