diff options
author | florent <florent.pigout@gmail.com> | 2011-03-19 18:38:42 (GMT) |
---|---|---|
committer | florent <florent.pigout@gmail.com> | 2011-03-19 18:38:42 (GMT) |
commit | c0e5c28846d9d697d026b69a91ce000efc2baff4 (patch) | |
tree | 23e0c424e26ec29a072f828bd2710607f1367f01 | |
parent | f4db022df404aeaea63e32d72ec9d320ce7e1bba (diff) |
do some refactoring & prepare sound keys
-rw-r--r-- | atoidejouer/story/keys.py | 59 | ||||
-rw-r--r-- | atoidejouer/ui/panel.py | 69 | ||||
-rw-r--r-- | atoidejouer/ui/screens.py | 7 | ||||
-rw-r--r-- | atoidejouer/ui/timeline.py | 8 |
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: |