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-03-19 18:38:42 (GMT)
committer florent <florent.pigout@gmail.com>2011-03-19 18:38:42 (GMT)
commitc0e5c28846d9d697d026b69a91ce000efc2baff4 (patch)
tree23e0c424e26ec29a072f828bd2710607f1367f01
parentf4db022df404aeaea63e32d72ec9d320ce7e1bba (diff)
do some refactoring & prepare sound keys
-rw-r--r--atoidejouer/story/keys.py59
-rw-r--r--atoidejouer/ui/panel.py69
-rw-r--r--atoidejouer/ui/screens.py7
-rw-r--r--atoidejouer/ui/timeline.py8
4 files changed, 88 insertions, 55 deletions
diff --git a/atoidejouer/story/keys.py b/atoidejouer/story/keys.py
index 175ec91..91d5b9c 100644
--- a/atoidejouer/story/keys.py
+++ b/atoidejouer/story/keys.py
@@ -49,7 +49,8 @@ class StoryKeys(object):
for _i, _f in enumerate(filenames):
_seq_dict[_f] = {
'__align': [0, 0],
- '__current': None
+ '__file_type': None,
+ '__key_type': None
}
# udpate main dict
self.__keys[sequence_name] = {
@@ -197,7 +198,8 @@ class StoryKeys(object):
if dict_ is None:
dict_ = {
'__align': [0, 0],
- '__current': None
+ '__file_type': None,
+ '__key_type': None
}
else:
pass
@@ -259,7 +261,7 @@ class StoryKeys(object):
_f_dict = self.get_filename_dict(sequence_name, _f, filename)
# little check
if _f_dict is None\
- or _f_dict['__current'] != 'key':
+ or _f_dict['__key_type'] != 'key':
continue
elif '__align' in _f_dict:
return _f_dict['__align']
@@ -301,8 +303,11 @@ class StoryKeys(object):
# return current pos
return _x, _y
- def set_current(self, sequence_name, frame, filename, type_='key'):
- """type_ key or transition
+ def set_current(self, sequence_name, frame, filename, file_type='lib',
+ key_type='key'):
+ """
+ file_type lib or jnl
+ key_type key or transition
"""
# get the dict
_filename_dict = self.get_filename_dict(sequence_name, frame, filename)
@@ -319,25 +324,29 @@ class StoryKeys(object):
else:
# set current
for _f, _d in _frame_dict.items():
- # type or none
- _c = type_ if _f == filename else None
+ # key type or none
+ _ft = key_type if _f == filename else None
+ # update
+ 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][frame][_f]['__current'] = _c
+ 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)
# little check
if _f_dict is None:
- return None, None
+ return None, None, None
else:
for _f, _d in _f_dict.items():
- if _d['__current'] is None:
+ if _d['__key_type'] is None:
continue
else:
- return _f, _d['__current']
+ return _f, _d['__file_type'], _d['__key_type']
# default
- return None, None
+ return None, None, None
def refresh(self, sequence_name):
# get max frame
@@ -351,18 +360,19 @@ class StoryKeys(object):
# update next dict
for _frame, _filename_dict in self.__keys[sequence_name].items():
for _filename, _dict in _filename_dict.items():
- if _filename is None or _dict['__current'] != 'key':
+ if _filename is None or _dict['__key_type'] != 'key':
# invalidate previous
self.__keys[sequence_name][_frame][_filename] = {
'__align': [0, 0],
- '__current': None
+ '__file_type': None,
+ '__key_type': None
}
else:
# small update for transition management
_tr_frame = (_frame + 1) if len(_range) == 0 else _frame
# update current range
_range.append(_tr_frame)
- _filenames.append(_filename)
+ _filenames.append((_filename, _dict['__file_type']))
# ..
if len(_range) == 2:
_next_list.append((_range, _filenames))
@@ -373,11 +383,13 @@ class StoryKeys(object):
# set transition
for _range, _filenames in _next_list:
# get first align
+ _first_filename, _first_filetype = _filenames[0]
_first_x, _first_y = self.get_align(sequence_name, _range[0]-1,
- _filenames[0])
+ _first_filename)
# get last align
+ _last_filename, _last_filetype = _filenames[1]
_last_x, _last_y = self.get_align(sequence_name, _range[1],
- _filenames[1])
+ _last_filename)
# compute steps
_inc_x = float(_last_x - _first_x)
_inc_x /= (_range[1] - _range[0] + 1)
@@ -387,11 +399,16 @@ class StoryKeys(object):
_new_x = _first_x
_new_y = _first_y
for _i in range(*_range):
- # compute filename
- _f = _filenames[1] if _i > ((_range[1] - _range[0]) / 2)\
- else _filenames[0]
+ # compute filename and file type
+ if _i < ((_range[1] - _range[0]) / 2):
+ _f = _first_filename
+ _t = _first_filetype
+ else:
+ _f = _last_filename
+ _t = _last_filetype
# set transition
- self.set_current(sequence_name, _i, _f, type_='transition')
+ self.set_current(sequence_name, _i, _f, file_type=_t,
+ key_type='transition')
# compute align
_new_x += _inc_x
_new_y += _inc_y
diff --git a/atoidejouer/ui/panel.py b/atoidejouer/ui/panel.py
index 68c10a7..50880ca 100644
--- a/atoidejouer/ui/panel.py
+++ b/atoidejouer/ui/panel.py
@@ -44,11 +44,16 @@ def _on_graphic_combo_changed(combobox, panel):
# get filename
_filename = _get_filename(panel)
# get current
- _current, _type = _activity.story_keys.get_current(
+ _current, _f_type, _k_type = _activity.story_keys.get_current(
panel._sequence_name, _activity._thread._time)
+ # DEBUG
+ logger.debug('[panel] _on_graphic_combo_changed - _current: %s' % _current)
+ logger.debug('[panel] _on_graphic_combo_changed - _f_type: %s' % _f_type)
+ logger.debug('[panel] _on_graphic_combo_changed - _k_type: %s' % _k_type)
+ # DEBUG
# do nothing
if _filename is None\
- or _type == 'transition'\
+ or _k_type == 'transition'\
or _activity._thread._pause is False:
return
# ...
@@ -58,11 +63,13 @@ def _on_graphic_combo_changed(combobox, panel):
_activity._thread._time, _current)
# reset current
_activity.story_keys.set_current(panel._sequence_name,
- _activity._thread._time, None)
+ _activity._thread._time, None, file_type=None,
+ key_type=None)
elif _current != _filename:
# update keys
_activity.story_keys.set_current(panel._sequence_name,
- _activity._thread._time, _filename)
+ _activity._thread._time, _filename, file_type='lib',
+ key_type='key')
# get previous align
_prev_align = _activity.story_keys.get_previous_align(
panel._sequence_name, _activity._thread._time, _filename)
@@ -85,11 +92,11 @@ def _on_position_clicked(widget, panel, move, value):
# get filename
_filename = _get_filename(panel)
# get current
- _current, _type = _activity.story_keys.get_current(
+ _current, _f_type, _k_type = _activity.story_keys.get_current(
panel._sequence_name, _activity._thread._time)
# do nothing
if _filename is None\
- or _type != 'key'\
+ or _k_type != 'key'\
or _activity._thread._pause is False:
pass
else:
@@ -150,13 +157,13 @@ def _on_time_clicked(widget, panel, direction):
# shortcut
_activity = panel.screen.toolbar.activity
# get current
- _current, _type = _activity.story_keys.get_current(
+ _current, _f_type, _k_type = _activity.story_keys.get_current(
panel._sequence_name, _activity._thread._time)
# little check
if panel._sequence_name is None:
return panel.time_entry.set_text('')
# do nothing
- elif _type == 'transition'\
+ elif _k_type == 'transition'\
or _activity._thread._pause is False:
return
else:
@@ -211,19 +218,20 @@ def _on_remove_key_clicked(widget, panel):
# shortcut
_activity = panel.screen.toolbar.activity
# get current
- _current, _type = _activity.story_keys.get_current(panel._sequence_name,
- _activity._thread._time)
+ _current, _f_type, _k_type = _activity.story_keys.get_current(
+ panel._sequence_name, _activity._thread._time)
# ..
- if _type is None:
+ if _k_type is None:
pass
- elif _type != 'key':
+ elif _k_type != 'key':
return
# remove key
_activity.story_keys.remove_filename(panel._sequence_name,
_activity._thread._time, _current)
# reset current
_activity.story_keys.set_current(panel._sequence_name,
- _activity._thread._time, None)
+ _activity._thread._time, None, file_type=None,
+ key_type=None)
# ...
_activity.story_keys.refresh(panel._sequence_name)
# refresh timeline
@@ -285,18 +293,11 @@ class Panel(gtk.Frame):
self.update_store()
else:
pass
- # prepare dir path
- _seq_path = os.path.join(activity.get_bundle_path(), 'static',
- 'sequences', '%s.seq' % self._sequence_name)
# shortcut
_activity = self.screen.toolbar.activity
- # little check
- if os.path.exists(_seq_path):
- # time entry update
- self.time_entry.set_text(
- '%1d:%02d' % divmod(_activity._thread._time, 60))
- else:
- pass
+ # time entry update
+ self.time_entry.set_text(
+ '%1d:%02d' % divmod(_activity._thread._time, 60))
def __get_time_button(self, name):
# init button
@@ -398,21 +399,31 @@ class PanelGraphics(Panel):
self.entry_y.set_text('')
def refresh(self, sequence_name=None, update_store=False):
- # update parent
- Panel.refresh(self, sequence_name=sequence_name,
- update_store=update_store)
# prepare dir path
_seq_path = os.path.join(activity.get_bundle_path(), 'static',
- 'sequences', '%s.seq' % self._sequence_name)
+ 'sequences', 'graphic', '%s.seq' % sequence_name)
+ # DEBUG
+ logger.debug('[panel] refresh - _seq_path: %s' % _seq_path)
+ logger.debug('[panel] refresh - update_store: %s' % update_store)
+ # DEBUG
# little check
if os.path.exists(_seq_path):
+ # update parent
+ Panel.refresh(self, sequence_name=sequence_name,
+ update_store=update_store)
# shortcut
_activity = self.screen.toolbar.activity
# ..
- _filename, _type = _activity.story_keys.get_current(
+ _filename, _f_type, _k_type = _activity.story_keys.get_current(
self._sequence_name, _activity._thread._time)
# get graphic names
_graphics = _get_sequence_graphics(_seq_path)
+ # DEBUG
+ logger.debug('[panel] refresh - _filename: %s' % _filename)
+ logger.debug('[panel] refresh - _f_type: %s' % _f_type)
+ logger.debug('[panel] refresh - _k_type: %s' % _k_type)
+ logger.debug('[panel] refresh - _graphics: %s' % _graphics)
+ # DEBUG
# get combo box active
if _filename in _graphics:
_active = _graphics.index(_filename) + 1
@@ -446,7 +457,7 @@ class PanelGraphics(Panel):
Panel.update_store(self)
# prepare dir path
_seq_path = os.path.join(activity.get_bundle_path(), 'static',
- 'sequences', '%s.seq' % self._sequence_name)
+ 'sequences', 'graphic', '%s.seq' % self._sequence_name)
# little check
if os.path.exists(_seq_path):
# get graphic names
diff --git a/atoidejouer/ui/screens.py b/atoidejouer/ui/screens.py
index 877d790..c6b4ffb 100644
--- a/atoidejouer/ui/screens.py
+++ b/atoidejouer/ui/screens.py
@@ -218,10 +218,11 @@ class ScreenStory(gtk.Fixed):
def __refresh_image(self, sequence_name, frame):
# get sequence file codes
- _seq_codes = self._get_keys().get_sequence_codes(self.toolbar.name,
- sequence_name)
+ _seq_codes = self._get_keys().get_sequence_codes(
+ self.toolbar.name, sequence_name)
# get sequence filename
- _current, _type = self._get_keys().get_current(sequence_name, frame)
+ _current, _f_type, _k_type = self._get_keys().get_current(
+ sequence_name, frame)
# ..
self.__hide_previous_images(_seq_codes, _current)
# need current
diff --git a/atoidejouer/ui/timeline.py b/atoidejouer/ui/timeline.py
index 490ca45..e8e454e 100644
--- a/atoidejouer/ui/timeline.py
+++ b/atoidejouer/ui/timeline.py
@@ -21,6 +21,10 @@ def _on_title_clicked(widget, timeline, sequence_name):
def _on_key_clicked(widget, timeline, sequence_name, frame):
+ # DEBUG
+ logger.debug('[timeline] _on_key_clicked - sequence_name: %s' % sequence_name)
+ logger.debug('[timeline] _on_key_clicked - frame: %s' % frame)
+ # DEBUG
# shortcut
timeline.screen.toolbar.activity.story_keys.ask_clear()
# update time and scene
@@ -310,7 +314,7 @@ class Timeline(gtk.Frame):
# ...
for _frame, _c_key in enumerate(_k_children[_i].children()[0]):
# ...
- _current, _type = _activity.story_keys.get_current(
+ _current, _f_type, _k_type = _activity.story_keys.get_current(
_label, _frame)
# get button
_button = _c_key.children()[0]
@@ -318,7 +322,7 @@ class Timeline(gtk.Frame):
if _current is None:
# _button.set_image(None)
_button.set_label("")
- elif _type == 'transition':
+ elif _k_type == 'transition':
# _button.set_image(None)
_button.set_label("-")
else: