Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py81
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