diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 81 |
1 files changed, 25 insertions, 56 deletions
diff --git a/activity.py b/activity.py index 65942f8..8ccacb9 100644 --- a/activity.py +++ b/activity.py @@ -15,8 +15,8 @@ gtk.gdk.threads_init() from sugar.activity import activity # atoidejouer import +from atoidejouer.db import story from atoidejouer.ui import screens, toolbar -# .. from atoidejouer.tools import config, storage # get application logger @@ -52,66 +52,41 @@ class ThreadAnim(threading.Thread): def kill(self): self._die = True - def set_time(self, time_=None, rate=0, pause=None): + def set_time(self, time_=None, rate=0, pause=None, key=None): # ensure time time_ = self._time if time_ is None else time_ # update time self._time = time_ + rate + # get current screen + _current_screen = self._activity.get_current_screen() + # update scene + if hasattr(_current_screen, 'refresh'): + _current_screen.refresh(key=key) + # update slider + if hasattr(_current_screen, 'toolbar'): + _current_screen.toolbar.refresh(self._time) + # pause + if pause and not self._pause: + _current_screen.toolbar.pause() # set pause self._pause = self._pause if pause is None else pause - # ... - _current_screen = self._activity.get_current_screen() - # ??? - if _current_screen is None: - # ERROR - logger.error('[activity] set_time - scene not found!') - # do pause on toolbar - elif pause is True: - if hasattr(_current_screen, 'toolbar'): - _current_screen.toolbar.pause() - else: - pass - else: - # update scene - if hasattr(_current_screen, 'scene'): - _current_screen.scene.refresh() - elif hasattr(_current_screen, 'refresh'): - _current_screen.refresh() - else: - pass - # update panel - if hasattr(_current_screen, 'panel'): - _current_screen.panel.refresh() - else: - pass - # update slider - if hasattr(_current_screen, 'toolbar'): - _current_screen.toolbar.refresh(self._time) - else: - pass def run(self): - # ... while self._die is False: # get current rate _rate = config.Config().get_rate_value() - # ... time.sleep(_rate) # do pause - if (self._time + 1) >= self._activity._number_of_keys\ + if self._time >= self._activity.max_time\ and self._pause is False: - # just in case - self._time = self._activity._number_of_keys - 1 - # ... + self._time = self._activity.max_time self.set_time(pause=True) - # .. continue # .. do nothing elif self._pause is True: continue # .. do something else: - # ... self.set_time(rate=_rate) @@ -135,6 +110,8 @@ class AToiDeJouerActivity(activity.Activity): def __init__(self, handle): # init parent activity.Activity.__init__(self, handle) + # .. first db init + story.DB(create=True) # init activity working folder storage.init_activity_files() # .. @@ -148,10 +125,9 @@ class AToiDeJouerActivity(activity.Activity): self._screens = dict() self._current = None self._previous = None + self._splash = None self._handler_id = None - self._number_of_keys = 1 - # .. - self.__splash = None + self.max_time = 0 # show self._toolbox.show() # tmp var @@ -171,15 +147,8 @@ class AToiDeJouerActivity(activity.Activity): def get_toolbox(self): return self._toolbox - """ - def update_number_of_keys(self): - # set max - _graphic_max = self.graphic_keys.get_max_frame() - _sound_max = self.sound_keys.get_max_frame() - _max = _graphic_max if _graphic_max > _sound_max else _sound_max - # update value - self._number_of_keys = _max + 1 - """ + def update_max_time(self): + self.max_time = story.DB().get_max('time') def get_current_screen(self): # little check @@ -234,10 +203,10 @@ class AToiDeJouerActivity(activity.Activity): self._current = toolbar.name if name is None else name # already exist if self._current == 'edit': - if self.__splash is None: - self.__splash = screens.Splash(toolbar) + if self._splash is None: + self._splash = screens.Splash(toolbar) else: - self.__splash._show() + self._splash._show() # ... glib.idle_add(partial(self.__idle_change, toolbar)) # .. default @@ -300,7 +269,7 @@ class AToiDeJouerActivity(activity.Activity): # self.graphic_keys.loads(_data) # self.sound_keys.loads(_data) # set activity new number of keys - # self.update_number_of_keys() + # self.update_max_time() # clear # self.graphic_keys.ask_clear() # switch to edit mode if no key |