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-05-26 16:42:15 (GMT)
committer florent <florent.pigout@gmail.com>2011-05-26 16:42:15 (GMT)
commite8bb4c5e1499f9f13904978fd40a270d27299394 (patch)
tree23505c17d47851a921539c4dbce763baea5d180f
parent9ecd3a945f2513388ecaee63f87b81c43d188772 (diff)
do some refactoring to enhance performance issue
-rw-r--r--activity.py8
-rw-r--r--atoidejouer/story/keys.py6
-rw-r--r--atoidejouer/ui/panel.py10
-rw-r--r--atoidejouer/ui/screens.py39
-rw-r--r--atoidejouer/ui/toolbar.py2
5 files changed, 45 insertions, 20 deletions
diff --git a/activity.py b/activity.py
index a446f80..0b1d0fd 100644
--- a/activity.py
+++ b/activity.py
@@ -47,8 +47,6 @@ class ThreadAnim(threading.Thread):
self._time = 0
else:
pass
- # refresh
- self.set_time()
def play(self):
self._pause = False
@@ -65,8 +63,12 @@ class ThreadAnim(threading.Thread):
self._pause = self._pause if pause is None else pause
# ...
_s = self._activity.get_current_screen()
+ # ???
+ if _s is None:
+ # ERROR
+ logger.error('[activity] set_time - scene not found!')
# do pause on toolbar
- if pause is True:
+ elif pause is True:
if hasattr(_s, 'toolbar'):
_s.toolbar.pause()
else:
diff --git a/atoidejouer/story/keys.py b/atoidejouer/story/keys.py
index aec1fca..a0277ae 100644
--- a/atoidejouer/story/keys.py
+++ b/atoidejouer/story/keys.py
@@ -580,8 +580,10 @@ class StoryKeys(object):
_f = _first_filename
_t = _first_filetype
else:
- _f = _last_filename
- _t = _last_filetype
+ #_f = _last_filename
+ #_t = _last_filetype
+ _f = _first_filename
+ _t = _first_filename
# set transition
self.set_current(sequence_name, _i, _f, file_type=_t,
key_type='transition')
diff --git a/atoidejouer/ui/panel.py b/atoidejouer/ui/panel.py
index d939eb3..e255814 100644
--- a/atoidejouer/ui/panel.py
+++ b/atoidejouer/ui/panel.py
@@ -71,10 +71,8 @@ def _on_graphic_combo_changed(combobox, panel):
panel.story_keys.refresh(panel._sequence_name)
# refresh timeline
panel.screen.timeline.refresh_sequence()
- # ...
- panel.story_keys.ask_clear()
# refresh scene
- panel.screen.scene.refresh()
+ panel.screen.scene.refresh(sequence_name=panel._sequence_name)
def _on_position_clicked(widget, panel, move, value):
@@ -101,10 +99,8 @@ def _on_position_clicked(widget, panel, move, value):
# update panel entries
panel.entry_x.set_text(str(_x))
panel.entry_y.set_text(str(-_y))
- # ...
- panel.story_keys.ask_clear()
# refresh scene
- panel.screen.scene.refresh()
+ panel.screen.scene.refresh(sequence_name=panel._sequence_name)
def _on_layout_clicked(widget, panel, move):
@@ -136,8 +132,6 @@ def _on_layout_clicked(widget, panel, move):
panel.screen.timeline.refresh_sequence()
# update entry
panel.entry_layout.set_text(str(_layout))
- # ...
- panel.story_keys.ask_clear()
# refresh scene
panel.screen.scene.refresh()
# reorder timeline
diff --git a/atoidejouer/ui/screens.py b/atoidejouer/ui/screens.py
index e193273..cf511b3 100644
--- a/atoidejouer/ui/screens.py
+++ b/atoidejouer/ui/screens.py
@@ -47,9 +47,9 @@ def _on_drag_finish(image, event, scene, sequence_name, frame, filename,
(_a_x, _a_y))
# update transitions
_story_keys.refresh(sequence_name)
- _story_keys.ask_clear()
+ # _story_keys.ask_clear()
# refresh scene with rounded values
- scene.refresh()
+ scene.refresh(sequence_name=sequence_name)
# get current screen
_screen = scene.toolbar.activity.get_current_screen()
# update timeline
@@ -146,7 +146,7 @@ class ScreenStory(graphics.Scene):
else:
return False
- def refresh(self):
+ def refresh(self, sequence_name=None):
# get the current frame
_time = 0.0 if self.toolbar.activity._thread is None\
else self.toolbar.activity._thread._time
@@ -160,8 +160,14 @@ class ScreenStory(graphics.Scene):
_currents = list()
# for each images
for _n in self._get_keys('graphics').get_names():
- # do move
- _currents.append(self.__refresh_image(_n, _time, _rate))
+ if sequence_name is None\
+ or sequence_name == _n:
+ # do move
+ _currents.append(self.__refresh_image(_n, _time, _rate))
+ else:
+ # just get code
+ _currents.append(self._get_current_code('graphics', _n,
+ _time))
# draw mask
_currents.append(self.__refresh_default('mask'))
# hide previous
@@ -183,8 +189,14 @@ class ScreenStory(graphics.Scene):
elif self.toolbar.activity._thread._pause is False:
# for each sound
for _n in self._get_keys('sounds').get_names():
- # do move
- self.__refresh_sound(_n, _time)
+ if sequence_name is None\
+ or sequence_name == _n:
+ # do move
+ self.__refresh_sound(_n, _time)
+ else:
+ # just get code
+ _currents.append(self._get_current_code('sounds', _n,
+ _time))
else:
# stop all
for _code, _sound in self.__sounds.items():
@@ -301,6 +313,19 @@ class ScreenStory(graphics.Scene):
# ..
return _x + (_next_x - _x) * _ratio, _y + (_next_y - _y) * _ratio
+ def _get_current_code(self, type_, sequence_name, time):
+ # get sequence filename
+ _current, _f_type, _k_type = self._get_keys(type_).get_current(
+ sequence_name, int(time))
+ # need current
+ if _current is None:
+ return None
+ else:
+ pass
+ # get sequence file codes
+ return self._get_keys(type_).get_code(
+ self.toolbar.name, sequence_name, _current)
+
def __refresh_image(self, sequence_name, time, rate):
# get sequence filename
_current, _f_type, _k_type = self._get_keys('graphics').get_current(
diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py
index 8e487b7..7dc33cb 100644
--- a/atoidejouer/ui/toolbar.py
+++ b/atoidejouer/ui/toolbar.py
@@ -318,6 +318,8 @@ def _cb_stop(widget, toolbar):
pass
# update main thread
toolbar.activity._thread.pause(stop=True)
+ # ..
+ toolbar.activity._thread.set_time()
def _cb_view_fullscreen(widget, toolbar):