Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidejouer/ui/panel/edit.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidejouer/ui/panel/edit.py')
-rw-r--r--atoidejouer/ui/panel/edit.py346
1 files changed, 153 insertions, 193 deletions
diff --git a/atoidejouer/ui/panel/edit.py b/atoidejouer/ui/panel/edit.py
index 7da08d4..b2cacee 100644
--- a/atoidejouer/ui/panel/edit.py
+++ b/atoidejouer/ui/panel/edit.py
@@ -48,94 +48,61 @@ def _on_position_clicked(widget, panel, move, value):
raise Exception('[ui.panel] _on_position_clicked"\
" - invalid position move: %s' % move)
# DB update
- story.DB().update(panel.key)
+ rowcount = story.DB().update(panel.key)
+ # DEBUG
+ logger.debug('[ui.panel.edit] _on_position_clicked - rowcount: %s' % rowcount)
# update panel entries
panel.entry_x.set_text(str(panel.key.x))
panel.entry_y.set_text(str(-panel.key.y))
# refresh scene
- panel.screen.scene.refresh(key=panel.key)
+ panel.screen.scene.refresh()
-def _on_layout_clicked(widget, panel, move):
+def _on_layer_clicked(widget, panel, move):
# shortcut
_activity = panel.screen.toolbar.activity
# get max
- _layout_max = story.DB().get_layout_max()
+ _layer_max = story.DB().get_max('layer')
# do nothing
if _activity._thread._pause is False\
or panel.key is None:
return
- # layout factory
+ # layer factory
elif move == 'move_up_up':
- panel.key.layout = _layout_max
+ panel.key.layer = _layer_max
elif move == 'move_up':
- panel.key.layout = panel.key.layout + 1\
- if panel.key.layout < _layout_max else _layout_max
+ panel.key.layer = panel.key.layer + 1\
+ if panel.key.layer <= _layer_max else _layer_max
elif move == 'move_down':
- panel.key.layout = panel.key.layout - 1\
- if panel.key.layout > 0 else 0
+ panel.key.layer = panel.key.layer - 1\
+ if panel.key.layer > 0 else 0
elif move == 'move_down_down':
- panel.key.layout = 0
+ panel.key.layer = 0
else:
- raise Exception('[ui.panel] _on_layout_clicked"\
- " - invalid layout move: %s' % move)
+ raise Exception('[ui.panel] _on_layer_clicked"\
+ " - invalid layer move: %s' % move)
# DB update
- story.DB().update(panel.key)
+ rowcount = story.DB().update(panel.key)
+ # DEBUG
+ # logger.debug('[ui.screen.story] _on_layer_clicked - key: %s' % panel.key)
+ # logger.debug('[ui.screen.story] _on_layer_clicked - rowcount: %s' % rowcount)
+ # DEBUG
# update entry
- panel.entry_layout.set_text(str(panel.key.layout))
+ panel.entry_layer.set_text(str(panel.key.layer))
# refresh scene
- panel.screen.scene.refresh()
-
-
-def _on_time_clicked(widget, panel, value):
- # shortcut
- _activity = panel.screen.toolbar.activity
- # little check
- if _activity._thread._pause is False\
- or panel.key is None:
- return
- else:
- _time = _activity._thread._time
- # time factory
- _time += value
- panel.key.time = 0 if _time < 0 else _time
- # DB update
- story.DB().update(panel.key)
- # entry update
- panel.time_entry.set_text('%1d:%02d' % divmod(_time, 60))
- # update thread time
- _activity._thread.set_time(time_=_time)
-
-
-def _on_remove_key_clicked(widget, panel):
- # shortcut
- _activity = panel.screen.toolbar.activity
- if _activity._thread._pause is False\
- or panel.key is None:
- return
- else:
- # delete
- story.DB()._del(panel.key)
- # empty key
- panel.key = None
- # refresh scene
- panel.screen.scene.refresh()
- # and reset panel
- panel.refresh()
+ panel.screen.refresh(key=panel.key)
def _on_duration_clicked(widget, panel, value):
# shortcut
_activity = panel.screen.toolbar.activity
- _duration_max = story.DB().get_duration_max()
+ _duration_max = story.DB().get_max('duration')
# do nothing
if _activity._thread._pause is False\
or panel.key is None:
- pass
+ return
elif panel.key.duration + value < 0:
panel.key.duration = 0
- elif panel.key.duration + value > _duration_max:
- panel.key.duration = _duration_max
else:
panel.key.duration += value
# DB update
@@ -196,6 +163,21 @@ def _get_previous_time(panel, factor):
return _previous
+def _on_remove_key_clicked(widget, panel):
+ # shortcut
+ _activity = panel.screen.toolbar.activity
+ if _activity._thread._pause is False\
+ or panel.key is None:
+ return
+ else:
+ # delete
+ story.DB()._del(panel.key)
+ # empty key
+ panel.key = None
+ # refresh screen
+ panel.screen.refresh()
+
+
def _on_key_press(widget, event, parent):
# ..
_keyval = event.keyval
@@ -205,7 +187,7 @@ def _on_key_press(widget, event, parent):
if parent.screen != parent.screen.toolbar.activity.get_current_screen():
return
# key factory
- elif panel.screen.toolbar.name == 'edit':
+ elif parent.screen.toolbar.name == 'edit':
# POSITION
if _name == 'Left' and _mod.startswith('Ctrl+'): # big left
_on_position_clicked(widget, parent, 'x', -10)
@@ -225,22 +207,22 @@ def _on_key_press(widget, event, parent):
_on_position_clicked(widget, parent, 'y', 1)
# LAYOUT
elif _name == 'Page_Up' and _mod.startswith('Ctrl+'):
- _on_layout_clicked(widget, parent, 'move_up_up')
+ _on_layer_clicked(widget, parent, 'move_up_up')
elif _name == 'Page_Up':
- _on_layout_clicked(widget, parent, 'move_up')
+ _on_layer_clicked(widget, parent, 'move_up')
elif _name == 'Page_Down' and _mod.startswith('Ctrl+'):
- _on_layout_clicked(widget, parent, 'move_down_down')
+ _on_layer_clicked(widget, parent, 'move_down_down')
elif _name == 'Page_Down':
- _on_layout_clicked(widget, parent, 'move_down')
+ _on_layer_clicked(widget, parent, 'move_down')
# TIME
elif _name == 'plus' and _mod.startswith('Ctrl+'):
- _on_time_clicked(widget, parent, 10)
+ _on_duration_clicked(widget, parent, 10)
elif _name == 'plus':
- _on_time_clicked(widget, parent, 1)
+ _on_duration_clicked(widget, parent, 1)
elif _name == 'minus' and _mod.startswith('Ctrl+'):
- _on_time_clicked(widget, parent, -10)
+ _on_duration_clicked(widget, parent, -10)
elif _name == 'minus':
- _on_time_clicked(widget, parent, -1)
+ _on_duration_clicked(widget, parent, -1)
# DELETE
elif _name == 'BackSpace':
_on_remove_key_clicked(widget, parent)
@@ -250,24 +232,17 @@ def _on_key_press(widget, event, parent):
if parent.screen.toolbar.name in ['edit', 'story']:
# shortcut
_thread = parent.screen.toolbar.activity._thread
- # ..
if _name == 'space': # play right
- #
_time = _get_next_time(parent, 1)
- #
_thread.set_time(time_=_time, pause=True)
elif _name == 'space' and _mod.startswith('Ctrl+'): # play left
- #
_time = _get_previous_time(parent, 1)
- #
_thread.set_time(time_=_time, pause=True)
# PLAY
elif _name == 'Return':
- # ..
if _thread._pause is True:
parent.screen.toolbar.play()
_thread.play()
- # ..
else:
parent.screen.toolbar.pause()
_thread.pause()
@@ -297,8 +272,6 @@ class PanelEdit(gtk.Frame):
# init vars
self._store = None
self.sequence_name = None
- # ..
- self.time_entry = None
# add vbox to the panel for sub frames
self.main_box = gtk.VBox(homogeneous=False, spacing=0)
# do show
@@ -308,27 +281,31 @@ class PanelEdit(gtk.Frame):
# ..
self.__init_handler()
# main vars
- self.entry_layout = None
- # ..
+ # title
+ self._frame_title = None
+ self._title_image = None
+ self._title_label = None
+ self._add_frame_title()
+ # add specific
+ self.entry_layer = None
+ self._frame_layer = None
+ self._add_frame_layer()
self.entry_x = None
self.entry_y = None
- # add specific
- self._frame_layout = None
self._frame_position = None
- self._add_frame_layout()
self._add_frame_position()
# init sound fields
- self.entry_duration = None
self.toggle_loop = None
- self.image_loop = None
+ self._image_loop = None
# add specific
self._frame_sound = None
self._add_frame_sound()
# add common
- self._frame_time = None
+ self.entry_duration = None
+ self._frame_duration = None
self._frame_remove = None
- self.add_frame_time()
- self.add_frame_remove()
+ self._add_frame_duration()
+ self._add_frame_remove()
def __init_handler(self):
_activity = self.screen.toolbar.activity
@@ -339,13 +316,11 @@ class PanelEdit(gtk.Frame):
_on_key_press, self)
def clear(self):
- self.time_entry.set_text('')
- self.entry_duration.set_text('')
- self.toggle_loop.set_active(False)
- # ..
- self.entry_layout.set_text('')
+ self.entry_layer.set_text('')
self.entry_x.set_text('')
self.entry_y.set_text('')
+ self.entry_duration.set_text('')
+ self.toggle_loop.set_active(False)
def _get_pixbuf(self, graphic_name, dir_='graphics'):
# get the image path
@@ -358,95 +333,99 @@ class PanelEdit(gtk.Frame):
self._frame_sound.hide()
# shortcut
_activity = self.screen.toolbar.activity
- # set layout value
- self.entry_layout.set_text(str(self.key.layout))
+ # set layer value
+ self.entry_layer.set_text(str(self.key.layer))
# set x value
self.entry_x.set_text(str(self.key.x))
# set y value
self.entry_y.set_text(str(-self.key.y))
# hide frame image
- self._frame_layout.show()
+ self._frame_layer.show()
self._frame_position.show()
def __refresh_sound(self):
# hide frame image
- self._frame_layout.hide()
+ self._frame_layer.hide()
self._frame_position.hide()
- # update duration value
- self.entry_duration.set_text('%1d:%02d' % divmod(self.key.duration, 60))
# update loop value
self.toggle_loop.set_active(self.key.loop==1)
# update image
_stock_id = 'repeat_grey' if self.key.loop==1 else 'repeat'
- self.image_loop.set_from_file(storage.get_icon_path(_stock_id))
+ self._image_loop.set_from_file(storage.get_icon_path(_stock_id))
# show frame sound
self._frame_sound.show()
def refresh(self, key=None):
+ # DEBUG
+ logger.debug('[ui.panel.edit] refresh - key: %s' % key)
+ # DEBUG
self.key = key
if not key:
- """
- self._frame_layout.hide()
+ self._frame_title.hide()
+ self._frame_layer.hide()
self._frame_position.hide()
self._frame_sound.hide()
- self._frame_time.hide()
+ self._frame_duration.hide()
self._frame_remove.hide()
- """
- self.show_all()
return self.clear()
- elif key.type == 'image':
+ elif key.mime_type == 'image/png':
self.__refresh_image()
- elif key.type == 'sound':
+ elif key.mime_type == 'audio/ogg':
self.__refresh_sound()
else:
raise Exception('[ui.panel] refresh - invalid key: %s' % key)
- # update common time value
- self.time_entry.set_text(
- '%1d:%02d' % divmod(key.time, 60))
- self._frame_time.show()
+ # update title image
+ self._title_image.set_from_pixbuf(key.get_preview())
+ # udpate title label
+ self._title_label.set_text(key.title)
+ self._frame_title.show()
+ # update common duration value
+ self.entry_duration.set_text(
+ '%1d:%02d' % divmod(key.duration, 60))
+ self._frame_duration.show()
self._frame_remove.show()
- def __get_time_button(self, name, value, tooltip_text):
+ def __get_duration_button(self, name, value, tooltip_text):
_button = ui.get_button(stock_id=name)
_button.set_tooltip_text(tooltip_text)
- _button.connect('clicked', _on_time_clicked, self, value)
+ _button.connect('clicked', _on_duration_clicked, self, value)
return _button
- def add_frame_time(self):
+ def _add_frame_duration(self):
# init frame
- self._frame_time = gtk.Frame(label=_('Time'))
- self._frame_time.set_border_width(1)
+ self._frame_duration = gtk.Frame(label=_('Duration'))
+ self._frame_duration.set_border_width(1)
# do show
- self._frame_time.show()
+ self._frame_duration.show()
# do add
- self.main_box.pack_start(self._frame_time, expand=False, fill=True)
+ self.main_box.pack_start(self._frame_duration, expand=False, fill=True)
# get over/under spin buttons
- _time_box = gtk.HBox(homogeneous=False, spacing=4)
- _time_box.set_border_width(4)
+ _duration_box = gtk.HBox(homogeneous=False, spacing=4)
+ _duration_box.set_border_width(4)
# before ..
- _time_box.pack_start(self.__get_time_button('go_left', -10,
+ _duration_box.pack_start(self.__get_duration_button('go_left', -10,
_('Play Before (10 Frames)')), expand=False, fill=True)
- _time_box.pack_start(self.__get_time_button('go_left_small', -1,
+ _duration_box.pack_start(self.__get_duration_button('go_left_small', -1,
_('Play Before (1 Frames)')), expand=False, fill=True)
# entry
- self.time_entry = gtk.Entry()
+ self.entry_duration = gtk.Entry()
# show
- self.time_entry.show()
+ self.entry_duration.show()
# set value - should be a string
- self.time_entry.set_text('')
- self.time_entry.set_alignment(1)
- self.time_entry.set_property('editable', False)
+ self.entry_duration.set_text('')
+ self.entry_duration.set_alignment(1)
+ self.entry_duration.set_property('editable', False)
# add entry
- _time_box.pack_start(self.time_entry, expand=True, fill=True)
+ _duration_box.pack_start(self.entry_duration, expand=True, fill=True)
# .. after
- _time_box.pack_start(self.__get_time_button('go_right_small', 1,
+ _duration_box.pack_start(self.__get_duration_button('go_right_small', 1,
_('Play After (1 Frames)')), expand=False, fill=True)
- _time_box.pack_start(self.__get_time_button('go_right', 10,
+ _duration_box.pack_start(self.__get_duration_button('go_right', 10,
_('Play After (10 Frames)')), expand=False, fill=True)
# do add
- self._frame_time.add(_time_box)
+ self._frame_duration.add(_duration_box)
- def add_frame_remove(self):
+ def _add_frame_remove(self):
# init frame
self._frame_remove = gtk.Frame(label=_('Remove'))
self._frame_remove.set_border_width(1)
@@ -468,42 +447,65 @@ class PanelEdit(gtk.Frame):
# get remove image button
_in_vbox.pack_start(_rm_key_button, expand=False, fill=True)
- def __get_layout_button(self, name, tooltip_text):
+ def _add_frame_title(self):
+ # init frame
+ self._frame_title = gtk.Frame(label=_('Title'))
+ self._frame_title.set_border_width(1)
+ # do add
+ self.main_box.pack_start(self._frame_title, expand=False, fill=True)
+ # vbox for the fram
+ _in_hbox = gtk.HBox(homogeneous=False, spacing=4)
+ _in_hbox.set_border_width(4)
+ # do add
+ self._frame_title.add(_in_hbox)
+ # create image
+ self._title_image = gtk.Image()
+ # get img path
+ self._title_image.set_from_file(storage.get_icon_path('repeat'))
+ self._title_image.set_size_request(48, -1)
+ # add duration box
+ _in_hbox.pack_start(self._title_image, expand=False, fill=True)
+ # create label
+ self._title_label = gtk.Label()
+ self._title_label.set_alignment(0, 0.5)
+ # add duration box
+ _in_hbox.pack_start(self._title_label, expand=False, fill=True)
+
+ def __get_layer_button(self, name, tooltip_text):
_button = ui.get_button(stock_id=name)
_button.set_tooltip_text(tooltip_text)
- _button.connect('clicked', _on_layout_clicked, self, name)
+ _button.connect('clicked', _on_layer_clicked, self, name)
return _button
- def _add_frame_layout(self):
+ def _add_frame_layer(self):
# init frame
- self._frame_layout = gtk.Frame(label=_('Layout'))
- self._frame_layout.set_border_width(1)
+ self._frame_layer = gtk.Frame(label=_('Layer'))
+ self._frame_layer.set_border_width(1)
# do add
- self.main_box.pack_start(self._frame_layout, expand=False, fill=True)
+ self.main_box.pack_start(self._frame_layer, expand=False, fill=True)
# vbox for the frame
_in_vbox = gtk.VBox(homogeneous=False, spacing=4)
_in_vbox.set_border_width(4)
# do add
- self._frame_layout.add(_in_vbox)
+ self._frame_layer.add(_in_vbox)
# get over/under spin buttons
_layer_box = gtk.HBox(homogeneous=True, spacing=4)
# down ..
- _layer_box.pack_start(self.__get_layout_button('move_down_down',
+ _layer_box.pack_start(self.__get_layer_button('move_down_down',
_('Layer to Bottom')), expand=False, fill=True)
- _layer_box.pack_start(self.__get_layout_button('move_down',
+ _layer_box.pack_start(self.__get_layer_button('move_down',
_('Lower Layer')), expand=False, fill=True)
# entry
- self.entry_layout = gtk.Entry()
+ self.entry_layer = gtk.Entry()
# set value - should be a string
- self.entry_layout.set_text("")
- self.entry_layout.set_alignment(1)
- self.entry_layout.set_property('editable', False)
+ self.entry_layer.set_alignment(1)
+ self.entry_layer.set_property('editable', False)
# add entry
- _layer_box.pack_start(self.entry_layout, expand=False, fill=True)
+ _layer_box.pack_start(self.entry_layer, expand=False, fill=True)
# .. up
- _layer_box.pack_start(self.__get_layout_button('move_up',
+ _layer_box.pack_start(self.__get_layer_button('move_up',
_('Raise Layer')), expand=False, fill=True)
- _layer_box.pack_start(self.__get_layout_button('move_up_up',
+ _layer_box.pack_start(self.__get_layer_button('move_up_up',
_('Layer to Top')), expand=False, fill=True)
# add row sequence
_in_vbox.pack_start(_layer_box, expand=True, fill=True)
@@ -565,51 +567,16 @@ class PanelEdit(gtk.Frame):
# put it in
self._frame_position.add(_in_vbox)
- def _get_time(self, value):
- """Format the time value to display
- """
- return '%1d:%02d' % divmod(value, 60)
-
- def __get_duration_button(self, name, value, tooltip_text):
- _button = ui.get_button(stock_id=name)
- _button.set_tooltip_text(tooltip_text)
- _button.connect('clicked', _on_duration_clicked, self, value)
- return _button
-
- def _get_duration_box(self):
- # get less/more spin buttons
- _duration_box = gtk.HBox(homogeneous=True, spacing=4)
- # down ..
- _duration_box.pack_start(self.__get_duration_button('less', -10,
- _('Duration -10s')), expand=False, fill=True)
- _duration_box.pack_start(self.__get_duration_button('less_small', -1,
- _('Duration -1s')), expand=False, fill=True)
- # entry
- self.entry_duration = gtk.Entry()
- # set value - should be a string
- self.entry_duration.set_text('') # self._get_time(0)
- self.entry_duration.set_alignment(1)
- self.entry_duration.set_property('editable', False)
- self.entry_duration.set_size_request(64, -1)
- # add entry
- _duration_box.pack_start(self.entry_duration, expand=False, fill=True)
- _duration_box.pack_start(self.__get_duration_button('more_small', 1,
- _('Duration +1s')), expand=False, fill=True)
- _duration_box.pack_start(self.__get_duration_button('more', 10,
- _('Duration +10s')), expand=False, fill=True)
- # return it
- return _duration_box
-
def _init_loop_box(self):
# init row
_loop_box = gtk.HBox(homogeneous=False, spacing=4)
# create image
- self.image_loop = gtk.Image()
+ self._image_loop = gtk.Image()
# get img path
- self.image_loop.set_from_file(storage.get_icon_path('repeat'))
- self.image_loop.set_size_request(48, -1)
+ self._image_loop.set_from_file(storage.get_icon_path('repeat'))
+ self._image_loop.set_size_request(48, -1)
# add image
- _loop_box.pack_start(self.image_loop, expand=False, fill=True)
+ _loop_box.pack_start(self._image_loop, expand=False, fill=True)
# create label
_label = gtk.Label(_('Repeat'))
_label.set_alignment(0, 0.5)
@@ -622,7 +589,7 @@ class PanelEdit(gtk.Frame):
self.toggle_loop.add(_loop_box)
# set cb
self.toggle_loop.connect('toggled', _on_loop_click, self,
- self.image_loop)
+ self._image_loop)
def _add_frame_sound(self):
# init frame
@@ -630,13 +597,6 @@ class PanelEdit(gtk.Frame):
self._frame_sound.set_border_width(1)
# do add
self.main_box.pack_start(self._frame_sound, expand=False, fill=True)
- # vbox for the fram
- _in_vbox = gtk.VBox(homogeneous=False, spacing=4)
- _in_vbox.set_border_width(4)
- # do add
- self._frame_sound.add(_in_vbox)
- # add duration box
- _in_vbox.pack_start(self._get_duration_box(), expand=False, fill=True)
# add loop button
self._init_loop_box()
- _in_vbox.pack_start(self.toggle_loop, expand=False, fill=True)
+ self._frame_sound.add(self.toggle_loop)