From f5d3ebdc108980580569f32352cdb9c6de3a401c Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Mon, 02 Feb 2009 10:39:23 +0000 Subject: Rename files --- (limited to 'Document.py') diff --git a/Document.py b/Document.py deleted file mode 100644 index a700f75..0000000 --- a/Document.py +++ /dev/null @@ -1,125 +0,0 @@ -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -import os -import gtk -from xml.etree.ElementTree import Element, SubElement, tostring, fromstring - -import Theme -import Utils - -class Document: - tape = [] - - ground_name = None - ground_orig = None - ground_filename = None - - sound_name = None - sound_filename = None - - class Tape: - def __init__(self): - self.clean() - - def clean(self): - self.orig = Theme.EMPTY_ORIG - self.filename = Theme.EMPTY_FILENAME - - for i in range(Theme.TAPE_COUNT): - tape.append(Tape()) - -def save(filepath): - zip = Utils.Zip(filepath, 'w') - manifest = Element('memorize') - - ground = SubElement(manifest, 'ground') - if Document.ground_filename: - ground.attrib['preinstalled'] = '1' - ground.attrib['filename'] = Document.ground_filename - else: - ground.attrib['preinstalled'] = '0' - ground.attrib['filename'] = 'ground.png' - zip.write_pixbuf('ground.png', Document.ground_orig) - ground.text = Document.ground_name - - sound = SubElement(manifest, 'sound') - if not os.path.isabs(Document.sound_filename): - sound.attrib['preinstalled'] = '1' - sound.attrib['filename'] = Document.sound_filename - else: - sound.attrib['preinstalled'] = '0' - sound.attrib['filename'] = 'sound' - zip.write(Document.sound_filename, 'sound') - sound.text = Document.sound_name - - saved = {} - tape = SubElement(manifest, 'tape') - for i in range(Theme.TAPE_COUNT): - frame = SubElement(tape, 'frame') - if Document.tape[i].filename: - frame.attrib['preinstalled'] = '1' - frame.attrib['filename'] = Document.tape[i].filename - else: - frame.attrib['preinstalled'] = '0' - arcname = saved.get(Document.tape[i].orig) - if not arcname: - arcname = saved[Document.tape[i].orig] = 'frame%03d.png' % i - zip.write_pixbuf(arcname, Document.tape[i].orig) - frame.attrib['filename'] = arcname - - zip.writestr('MANIFEST.xml', tostring(manifest, encoding='utf-8')) - zip.close() - -def load(filepath): - zip = Utils.Zip(filepath, 'r') - manifest = fromstring(zip.read('MANIFEST.xml')) - - ground = manifest.find('ground') - if int(ground.attrib['preinstalled']): - Document.ground_orig = Theme.pixbuf(ground.attrib['filename']) - Document.ground_filename = ground.attrib['filename'] - else: - Document.ground_orig = zip.read_pixbuf(ground.attrib['filename']) - Document.ground_name = ground.text - - sound = manifest.find('sound') - if int(sound.attrib['preinstalled']): - Document.sound_filename = sound.attrib['filename'] - else: - arcfile = sound.attrib['filename'] - sndfile = os.path.join(Theme.SESSION_PATH, 'sound.001') - file(sndfile, 'w').write(zip.read(arcfile)) - Document.sound_filename = sndfile - Document.sound_name = sound.text - - loaded = {} - for i, frame in enumerate(manifest.findall('tape/frame')): - if i >= Theme.TAPE_COUNT: - continue - if int(frame.attrib['preinstalled']): - if frame.attrib['filename'] == Theme.EMPTY_FILENAME: - Document.tape[i].orig = Theme.EMPTY_ORIG - else: - Document.tape[i].orig = Theme.pixbuf(frame.attrib['filename']) - Document.tape[i].filename = frame.attrib['filename'] - else: - pixbuf = loaded.get(frame.attrib['filename']) - if not pixbuf: - pixbuf = zip.read_pixbuf(frame.attrib['filename']) - loaded[frame.attrib['filename']] = pixbuf - Document.tape[i].orig = pixbuf - Document.tape[i].filename = None - - zip.close() -- cgit v0.9.1