diff options
Diffstat (limited to '')
-rw-r--r-- | src/mapdata.py | 15 | ||||
-rw-r--r-- | src/mapfile.py | 27 |
2 files changed, 25 insertions, 17 deletions
diff --git a/src/mapdata.py b/src/mapdata.py index ea62111..ec0feff 100644 --- a/src/mapdata.py +++ b/src/mapdata.py @@ -7,21 +7,6 @@ TILE_SIZE = (24,24) MAP_SIZE_IN_TILES = (512,512) MAP_SIZE = (MAP_SIZE_IN_TILES[0] * TILE_SIZE[0], MAP_SIZE_IN_TILES[1] * TILE_SIZE[1]) -@mapfile.dumpClassAs(QtGui.QPixmap, 'pixmap') -def dumpPixmap(pm): - buf = QtCore.QBuffer() - buf.open(buf.WriteOnly) - pm.save(buf, 'PNG') - data = str(buf.data()) - buf.close() - return {'png': base64.b64encode(data)} - -@mapfile.loadClassFrom('pixmap') -def loadPixmap(source): - pm = QtGui.QPixmap() - pm.loadFromData(base64.b64decode(source['png']), 'PNG') - return pm - @mapfile.dumpable('layer') class KPLayer(object): __dump_attribs__ = ('name', '_visible') diff --git a/src/mapfile.py b/src/mapfile.py index eb05a4a..16d57db 100644 --- a/src/mapfile.py +++ b/src/mapfile.py @@ -7,7 +7,7 @@ DUMPABLE_CLASS_NAMES = {} DUMPABLE_PROXIES = {} LOADABLE_PROXIES = {} -def dumpClassAs(cls, name): +def dumpClassAs(cls, name=None): def __add_it(function): DUMPABLE_PROXIES[cls] = (name, function) return function @@ -39,7 +39,8 @@ def dump(rootObj): return piece dest = dumpFunc(piece) - dest['_t'] = dumpName + if dumpName is not None: + dest['_t'] = dumpName return dest @@ -94,3 +95,25 @@ def load(string): return root + + + +@dumpClassAs(QtGui.QPixmap, 'pixmap') +def dumpPixmap(pm): + buf = QtCore.QBuffer() + buf.open(buf.WriteOnly) + pm.save(buf, 'PNG') + data = str(buf.data()) + buf.close() + return {'png': base64.b64encode(data)} + +@loadClassFrom('pixmap') +def loadPixmap(source): + pm = QtGui.QPixmap() + pm.loadFromData(base64.b64decode(source['png']), 'PNG') + return pm + +@dumpClassAs(QtCore.QString) +def dumpQString(string): + return str(string) + |