Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorent <florent.pigout@gmail.com>2011-04-12 09:21:23 (GMT)
committer florent <florent.pigout@gmail.com>2011-04-12 09:21:23 (GMT)
commit03bdfae8193d98aa5d8e1cc2b7836ee6fb679e27 (patch)
treecdc4711fff703e84b9b5345e086b7d15cfc49cca
parent48f7bfbbda1c903b412c18f139157756eee9c584 (diff)
enhance simple backup/restore feature
-rw-r--r--activity.py12
-rw-r--r--atoidejouer/story/keys.py93
-rw-r--r--atoidejouer/ui/screens.py13
3 files changed, 55 insertions, 63 deletions
diff --git a/activity.py b/activity.py
index d4429b3..3a6bcce 100644
--- a/activity.py
+++ b/activity.py
@@ -237,17 +237,9 @@ class AToiDeJouerActivity(activity.Activity):
_data = _file.read()
finally:
_file.close()
- # DEBUG
- logger.debug('[activity] read_file - _data: %s' % _data)
- logger.debug('[activity] read_file - self._screens: %s' % self._screens)
- # DEBUG
# parse json data
- _data_dict = json.loads(_data)
- # load keys
- self.graphic_keys._names = _data_dict['graphic_names']
- self.graphic_keys._keys = _data_dict['graphic_keys']
- self.sound_keys._names = _data_dict['sound_names']
- self.sound_keys._keys = _data_dict['sound_keys']
+ self.graphic_keys.loads(_data)
+ self.sound_keys.loads(_data)
# refresh default
_current = self.get_current_screen()
_current.refresh()
diff --git a/atoidejouer/story/keys.py b/atoidejouer/story/keys.py
index 5736f26..89d60dd 100644
--- a/atoidejouer/story/keys.py
+++ b/atoidejouer/story/keys.py
@@ -1,6 +1,6 @@
# python import
-import logging, os
+import json, logging, os
# ..
from functools import partial
from gettext import gettext as _
@@ -24,6 +24,10 @@ class StoryKeys(object):
# keep type
self._type = type_
# ..
+ self.__init()
+
+ def __init(self):
+ # ..
self._names = list()
self.__codes = {
'graphics': dict(),
@@ -38,6 +42,37 @@ class StoryKeys(object):
#
self._keys = dict()
+ def loads(self, data):
+ # parse json data
+ _data_dict = json.loads(data)
+ # ..
+ if self._type == 'graphics':
+ # ..
+ _tmp_names = _data_dict['graphic_names']
+ _tmp_keys = _data_dict['graphic_keys']
+ # ..
+ elif self._type == 'sounds':
+ # ..
+ _tmp_names = _data_dict['sound_names']
+ _tmp_keys = _data_dict['sound_keys']
+ # ??
+ else:
+ return
+ # reset keys
+ self.__init()
+ # set names
+ self._names = _tmp_names
+ # ensure keys
+ for _seq_name, _seq_dict in _tmp_keys.items():
+ # init seq dict copy
+ _tmp_seq_dict = dict()
+ # work on seq dict copy
+ for _frame_name, _frame_dict in _seq_dict.items():
+ # seq dict copy update
+ _tmp_seq_dict[int(_frame_name)] = _frame_dict
+ # update main dict
+ self._keys[_seq_name] = _tmp_seq_dict
+
def add_sequence(self, sequence_name, filenames):
# TODO ensure valid name
if sequence_name in self._names:
@@ -157,23 +192,12 @@ class StoryKeys(object):
def get_frame_dict(self, sequence_name, frame):
# little check
if sequence_name in self._names:
-
- # DEBUG
- logger.debug('[keys] get_frame_dict - sequence_name: %s' % sequence_name)
- logger.debug('[keys] get_frame_dict - self._keys: %s' % self._keys)
- # DEBUG
-
# ..
_seq_dict = self._keys[sequence_name]
# little check
- if str(frame) in _seq_dict:
-
- # DEBUG
- logger.debug('[keys] get_frame_dict - frame: %s' % frame)
- # DEBUG
-
+ if frame in _seq_dict:
# get frame dict
- return _seq_dict[str(frame)]
+ return _seq_dict[frame]
else:
return None
else:
@@ -187,9 +211,9 @@ class StoryKeys(object):
# little check
if previous_frame in _seq_dict:
# set frame dict from previous
- _seq_dict[str(new_frame)] = _seq_dict[str(previous_frame)]
+ _seq_dict[new_frame] = _seq_dict[previous_frame]
# clear main dict
- del _seq_dict[str(previous_frame)]
+ del _seq_dict[previous_frame]
else:
pass
else:
@@ -223,11 +247,11 @@ class StoryKeys(object):
# ensure frame dict
_frame_dict = self.get_frame_dict(sequence_name, frame)
if _frame_dict is None:
- self._keys[sequence_name][str(frame)] = dict()
+ self._keys[sequence_name][frame] = dict()
else:
pass
# update the main dict
- self._keys[sequence_name][str(frame)][filename] = dict_
+ self._keys[sequence_name][frame][filename] = dict_
def get_filename_dict(self, sequence_name, frame, filename):
# little check
@@ -235,9 +259,9 @@ class StoryKeys(object):
# ..
_seq_dict = self._keys[sequence_name]
# little check
- if str(frame) in _seq_dict:
+ if frame in _seq_dict:
# get frame dict
- _frame_dict = _seq_dict[str(frame)]
+ _frame_dict = _seq_dict[frame]
# little check
if filename in _frame_dict:
# return filename dict
@@ -257,7 +281,7 @@ class StoryKeys(object):
return
# do remove
else:
- del self._keys[sequence_name][str(frame)][filename]
+ del self._keys[sequence_name][frame][filename]
def set_align(self, sequence_name, frame, filename, align):
# .. get the dict
@@ -266,7 +290,7 @@ class StoryKeys(object):
if _f_dict is None:
return
else:
- self._keys[sequence_name][str(frame)][filename]['__align'] = align
+ self._keys[sequence_name][frame][filename]['__align'] = align
def get_previous_align(self, sequence_name, frame):
# prepare inversed range
@@ -330,7 +354,7 @@ class StoryKeys(object):
if _f_dict is None:
return
else:
- self._keys[sequence_name][str(frame)][filename]['__duration'] = duration
+ self._keys[sequence_name][frame][filename]['__duration'] = duration
def get_duration(self, sequence_name, frame, filename):
# .. get the dict
@@ -374,7 +398,7 @@ class StoryKeys(object):
if _f_dict is None:
return
else:
- self._keys[sequence_name][str(frame)][filename]['__loop'] = loop
+ self._keys[sequence_name][frame][filename]['__loop'] = loop
def get_loop(self, sequence_name, frame, filename):
# .. get the dict
@@ -416,31 +440,20 @@ class StoryKeys(object):
# key type or none
_ft = key_type if _f == filename else None
# update
- self._keys[sequence_name][str(frame)][_f]['__file_type'] = _ft
+ self._keys[sequence_name][frame][_f]['__file_type'] = _ft
# key type or none
_kt = key_type if _f == filename else None
# update
- self._keys[sequence_name][str(frame)][_f]['__key_type'] = _kt
+ self._keys[sequence_name][frame][_f]['__key_type'] = _kt
def get_current(self, sequence_name, frame):
# get the dict
_f_dict = self.get_frame_dict(sequence_name, frame)
-
- # DEBUG
- logger.debug('[keys] get_current - _f_dict: %s' % _f_dict)
- # DEBUG
-
# little check
if _f_dict is None:
return None, None, None
else:
for _f, _d in _f_dict.items():
-
- # DEBUG
- logger.debug('[keys] get_current - _f: %s' % _f)
- logger.debug('[keys] get_current - _d: %s' % _d)
- # DEBUG
-
if _d['__key_type'] is None:
continue
else:
@@ -471,7 +484,7 @@ class StoryKeys(object):
}
else:
# small update for transition management
- _tr_frame = (int(_frame) + 1) if len(_range) == 0 else _frame
+ _tr_frame = (_frame + 1) if len(_range) == 0 else _frame
# update current range
_range.append(_tr_frame)
_filenames.append((_filename, _dict['__file_type']))
@@ -550,7 +563,7 @@ class StoryKeys(object):
# set transition for loop keys
for _frame, _f, _f_type in _loops:
# little check
- _t_start = int(_frame) + 1
+ _t_start = _frame + 1
# ..
if _t_start >= _max_frame:
continue
@@ -564,7 +577,7 @@ class StoryKeys(object):
# set transition for loop keys
for _frame, _f, _f_type, _duration in _durations:
# little check
- _t_start = int(_frame) + 1
+ _t_start = _frame + 1
_t_end = _t_start+_duration
if _t_start >= _max_frame:
continue
diff --git a/atoidejouer/ui/screens.py b/atoidejouer/ui/screens.py
index 5e70f22..f14d152 100644
--- a/atoidejouer/ui/screens.py
+++ b/atoidejouer/ui/screens.py
@@ -150,9 +150,6 @@ class ScreenStory(gtk.Fixed):
self._refresh_screen_size()
# for each images
for _n in self._get_keys('graphics').get_names():
- # DEBUG
- logger.debug('[screens] refresh - _n: %s' % _n)
- # DEBUG
# do move
self.__refresh_image(_n, _frame)
# draw mask
@@ -264,16 +261,6 @@ class ScreenStory(gtk.Fixed):
sequence_name, frame)
# ..
self.__hide_previous_images(_seq_codes, _current)
-
- # DEBUG
- logger.debug('[screens] __refresh_image - sequence_name: %s' % sequence_name)
- logger.debug('[screens] __refresh_image - frame: %s' % frame)
- logger.debug('[screens] __refresh_image - _seq_codes: %s' % _seq_codes)
- logger.debug('[screens] __refresh_image - _current: %s' % _current)
- logger.debug('[screens] __refresh_image - _f_type: %s' % _f_type)
- logger.debug('[screens] __refresh_image - _k_type: %s' % _k_type)
- # DEBUG
-
# need current
if _current is None:
return