Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidejouer/ui/toolbar.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidejouer/ui/toolbar.py')
-rw-r--r--atoidejouer/ui/toolbar.py115
1 files changed, 40 insertions, 75 deletions
diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py
index 88fdd51..fe33ef8 100644
--- a/atoidejouer/ui/toolbar.py
+++ b/atoidejouer/ui/toolbar.py
@@ -15,6 +15,7 @@ from sugar.activity import activity
from sugar.graphics.toolbutton import ToolButton
# atoidejouer import
+from atoidejouer.db import story
from atoidejouer.tools import config, storage
from atoidejouer.ui import screens
@@ -90,46 +91,6 @@ def _cb_add(widget, toolbar):
logger.error('[toolbar] _cb_add - unknown: %s' % toolbar.name)
-def _cb_frame_after(widget, toolbar):
- if toolbar._frame_entry is None:
- pass
- else:
- # get previous value
- _value = int(toolbar._frame_entry.get_text())
- # inc it
- _update_frame_entry(widget, toolbar, _value + 1)
-
-
-def _cb_frame_before(widget, toolbar):
- if toolbar._frame_entry is None:
- pass
- else:
- # get previous value
- _value = int(toolbar._frame_entry.get_text())
- # dec it
- _update_frame_entry(widget, toolbar, _value - 1)
-
-
-def _update_frame_entry(entry, toolbar, value):
- # get screen
- _screen = toolbar.activity.get_current_screen()
- # get max value
- _max = _screen.sequence_preview.number_of_items() - 1
- # prepare value
- _new_val = None
- if value > _max:
- _new_val = _max
- elif value < 0:
- _new_val = 0
- # reset max just in case
- else:
- _new_val = value
- # update entry
- toolbar._frame_entry.set_text(str(_new_val))
- # update sequence
- _screen.sequence_preview.move_current(_new_val)
-
-
def _cb_open(widget, toolbar):
pass
@@ -145,14 +106,8 @@ def _cb_back(widget, toolbar):
def _cb_import(widget, toolbar):
- # get the current sequence name
- _sequence_name = toolbar._sequence_entry.get_text()
# get filenames
_screen = toolbar.activity.get_current_screen()
- # shortcut
- _filenames = _screen.sequence_preview.items
- # add sequence to the story keys
- # toolbar.story_keys.add_sequence(_sequence_name, _filenames)
def _cb_play(widget, toolbar):
@@ -172,13 +127,11 @@ def _cb_pause(widget, toolbar):
def _cb_stop(widget, toolbar):
# replace pause button - if playing
if toolbar._has_button('pause'):
- # ..
toolbar._replace_button('pause', 'play')
else:
pass
# update main thread
toolbar.activity._thread.pause(stop=True)
- # ..
toolbar.activity._thread.set_time()
@@ -204,17 +157,40 @@ def _cb_view_return(widget, toolbar):
_screen.set_fullscreen(False)
+def __set_time(toolbar, time_):
+ _current_screen = toolbar.activity.get_current_screen()
+ if hasattr(_current_screen, 'panel_edit'):
+ _key = _current_screen.panel_edit._edit_panel.key
+ _key = story.DB().one(
+ story.Key(
+ title=_key.title,
+ mime_type=_key.mime_type,
+ timestamp=_key.timestamp,
+ time=time_
+ )
+ ) if _key is not None else None
+ toolbar.activity._thread.set_time(time_=time_, key=_key)
+ else:
+ toolbar.activity._thread.set_time(time_=time_)
+
def _cb_slider(widget, event, toolbar):
"""action = 'press' or 'release'
"""
- # ...
- if event.type == gtk.gdk.BUTTON_PRESS:
- pass
- elif event.type == gtk.gdk.BUTTON_RELEASE:
- toolbar.activity._thread.set_time(time_=widget.get_value())
- # ??
- else:
- pass
+ if event.type == gtk.gdk.BUTTON_RELEASE:
+ __set_time(toolbar, widget.get_value())
+
+
+def _cb_backward(widget, toolbar):
+ _time = toolbar.activity._thread._time
+ _time = _time - 1 if _time > 0 else 0
+ __set_time(toolbar, _time)
+
+
+def _cb_forward(widget, toolbar):
+ _time = toolbar.activity._thread._time
+ _max = toolbar.activity.max_time
+ _time = _time + 1 if _time < _max else _max
+ __set_time(toolbar, _time)
def _cb_format_value(widget, value, toolbar):
@@ -223,6 +199,7 @@ def _cb_format_value(widget, value, toolbar):
# return formated value
return '%1d:%02d' % divmod(value, 60)
+
TOOLBAR_INDEXES = ['activity', 'story', 'edit', 'help']
def _cb_help_back(widget, toolbar):
@@ -237,10 +214,8 @@ def _cb_help_back(widget, toolbar):
BUTTONS = {
'add' : ['list-add', _cb_add],
'back' : ['edit-undo', _cb_back],
- 'backward' : ['media-seek-backward', None],
- 'forward' : ['media-seek-forward', None],
- 'frame_after' : ['go-right', _cb_frame_after],
- 'frame_before' : ['go-left', _cb_frame_before],
+ 'backward' : ['media-seek-backward', _cb_backward],
+ 'forward' : ['media-seek-forward', _cb_forward],
'frame_entry' : [None, None],
'help_back' : ['edit-undo', _cb_help_back],
'import' : ['insert-image', _cb_import],
@@ -320,7 +295,6 @@ class Toolbar(gtk.Toolbar):
self.activity = activity
# adjustment
self._adjustment = None
- self._number_of_keys = self.activity._number_of_keys
# keep components
self._sequence_entry = None
self._frame_entry = None
@@ -400,25 +374,16 @@ class Toolbar(gtk.Toolbar):
return None
def play(self):
- # do pause
_cb_play(None, self)
def pause(self):
- # do pause
_cb_pause(None, self)
def refresh(self, value):
- # ...
- if self._number_of_keys != self.activity._number_of_keys:
- # update nb of keys
- self._number_of_keys = self.activity._number_of_keys
- # update adjustment
- if hasattr(self._adjustment, 'set_upper'):
- self._adjustment.set_upper(self._number_of_keys-1)
- else:
- self._adjustment.upper = self._number_of_keys-1
- else:
- pass
+ # update adjustment
+ # if hasattr(self._adjustment, 'set_upper'): ???
+ # self._adjustment.set_upper(_max)
+ self._adjustment.upper = self.activity.max_time
# get slider
_s = self.get_slider()
# slider stuff
@@ -459,7 +424,7 @@ class Toolbar(gtk.Toolbar):
# manage slider
elif button_id == 'slider':
#
- self._adjustment = gtk.Adjustment(0, 0, self._number_of_keys-1, 1)
+ self._adjustment = gtk.Adjustment(0, 0, self.activity.max_time, 1)
# ..
_hscale = gtk.HScale(self._adjustment)
_hscale.set_draw_value(True)