Automatically save glyph database after adding a new glyph.

This commit is contained in:
Andrey Golovizin 2014-09-19 21:03:22 +02:00
parent 5b1e84dd7f
commit a9a3fc2bac

View file

@ -94,19 +94,22 @@ class GlyphDB(object):
key = self._key_from_glyph(glyph)
return self._dict[key]
def add_glyph(self, glyph, text, bold=False, italic=False):
def add_glyph(self, glyph, text, bold=False, italic=False, save=True):
data = GlyphData.from_glyph(glyph, text, bold=bold, italic=italic)
key = self._key_from_glyph(glyph)
self._dict[key] = data
self.add(data)
return data
def add(self, data):
def add(self, data, save=True):
key = self._key_from_data(data)
self._dict[key] = data
if save:
self.save()
def remove(self, data):
def remove(self, data, save=True):
key = self._key_from_data(data)
del self._dict[key]
if save:
self.save()
def keys(self):
return self._dict.keys()
@ -121,7 +124,7 @@ class GlyphDB(object):
with open(self.filename, 'rb') as fileobj:
data = pickle.load(fileobj)
for item in data:
self.add(GlyphData.deserialize(item))
self.add(GlyphData.deserialize(item), save=False)
def save(self):
data = [data.serialize() for data in self.values()]