Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidejouer/ui/panel/notebook.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidejouer/ui/panel/notebook.py')
-rw-r--r--atoidejouer/ui/panel/notebook.py198
1 files changed, 35 insertions, 163 deletions
diff --git a/atoidejouer/ui/panel/notebook.py b/atoidejouer/ui/panel/notebook.py
index f67abfc..346e2f9 100644
--- a/atoidejouer/ui/panel/notebook.py
+++ b/atoidejouer/ui/panel/notebook.py
@@ -36,158 +36,57 @@ def _set_bg(widget):
def _cb_swicth_page(widget, page, page_num, notebook):
- """
- if page_num == 1:
- notebook.remove_button.show()
- else:
- notebook.remove_button.hide()
- notebook.remove_label.hide()
- """
# get current child
_child = widget.get_nth_page(page_num)
# get current label
_label = widget.get_tab_label(_child)
# force white
- # glib.idle_add(partial(_label.modify_fg, gtk.STATE_NORMAL, COLOR_WHITE))
- # _label.modify_fg(gtk.STATE_NORMAL, COLOR_WHITE)
_set_bg(_label)
-def _cb_cursor_changed(treeview, notebook, type_):
+def _cb_cursor_changed(treeview, notebook):
# get the current cursor and path
_path, _column = treeview.get_cursor()
if _column is None:
return
# get model
_model = treeview.get_model()
- # get resource info
- _info = _model
# get iter
_iter = _model.get_iter(_path)
- # update current
- if type_ in ['graphics', 'sounds']:
- # shorcut
- _activity = notebook.screen.toolbar.activity
- # prepare key
- _name = _model.get_value(_iter, 1)
- _info = _model.get_value(_iter, 2)
- _kargs = {
- 'name': _name,
- 'mime_type': str(_info['mime_type']),
- 'timestamp': str(_info['timestamp']),
- 'time': _activity._thread._time,
- 'layout': story.DB().get_layout_max(),
- 'x': 0,
- 'y': 0,
- 'duration': 0,
- 'loop': 0,
- 'path': _info['file_path']
- }
- # do add
- story.DB().add(story.Key(**_kargs))
- # reload key
- _key = story.DB().one(
- story.Key(
- timestamp=str(_info['timestamp']),
- mime_type=str(_info['mime_type']),
- )
+ # shorcut
+ _activity = notebook.screen.toolbar.activity
+ # prepare key
+ _title = _model.get_value(_iter, 1)
+ _info = _model.get_value(_iter, 2)
+ _kargs = {
+ 'title': _title,
+ 'mime_type': str(_info['mime_type']),
+ 'timestamp': str(_info['timestamp']),
+ 'time': _activity._thread._time,
+ 'layer': story.DB().get_max('layer'),
+ 'x': 0,
+ 'y': 0,
+ 'duration': 0,
+ 'loop': 0,
+ 'path': _info['file_path']
+ }
+ # do add
+ story.DB().add(story.Key(**_kargs))
+ # reload key to retrieve db id
+ _key = story.DB().one(
+ story.Key(
+ title=_title,
+ timestamp=str(_info['timestamp']),
+ mime_type=str(_info['mime_type']),
)
- if _key is None:
- raise Exception('[ui.panel.notebook] on_click - key not found: %s'\
- % str(_info['timestamp']))
- # set path for next use
- _key.set_path(_info['file_path'])
- # TODO refresh panel graphics or sounds
- logger.debug('[ui.panel.notebook] on_clicked - _kargs: %s' % _kargs)
- # udpate scene or panel_sound
- if type_ == 'graphics':
- notebook.screen.scene.refresh()
- else:
- notebook.screen.panel_sound.refresh()
-
-
-def __remove_filename_from_sequence(type_, sequence, filename):
- pass
- """
- # little check
- if filename.strip() == '':
- # do nothing
- return True
- else:
- # get sequence path
- _seq_path = storage.get_sequence_path(type_, sequence)
- # get current names
- _fnames = storage.get_sequence_items(_seq_path)
- # has remaining files
- if filename in _fnames:
- _fnames.remove(filename)
- else:
- return True
- # ..
- if len(_fnames) == 0:
- os.remove(_seq_path)
- return False
- else:
- # open file
- _file = open(_seq_path, 'wb')
- # update
- for _f in _fnames:
- _file.write('%s\n' % _f)
- # close
- _file.close()
- # ..
- return True
- """
-
-
-def _on_button_click(button, notebook):
- pass
- """
- # get file path
- if notebook._type == 'graphics':
- _path = storage.get_image_path(notebook.current_item)
- elif notebook._type == 'sounds':
- _path = storage.get_sound_path(notebook.current_item)
- # do nothing
- else:
- return
- # remove file
- os.remove(_path)
- # shortcuts
- _screen = notebook.screen
- _toolbar = _screen.toolbar
- _activity = _toolbar.activity
- # ..
- _keys = _activity.graphic_keys\
- if _toolbar.name == 'graphics_add'\
- else _activity.sound_keys
- # ..
- _type = 'graphics' if _toolbar.name == 'graphics_add' else 'sounds'
- # prepare seq path
- _seq_dir = os.path.join(activity.get_activity_root(), 'data',
- 'sequences', _type)
- # get sequence names
- for _seq_name in os.listdir(_seq_dir):
- # get sequence name from corresponding file name
- _seq_name = _seq_name.replace('.seq', '')
- # remove from file system
- if __remove_filename_from_sequence(_type, _seq_name,
- notebook.current_item) is True:
- # remove from keys
- _keys.remove_filename_from_all(_seq_name, notebook.current_item)
- # remove the entire sequence
- else:
- # from keys
- _keys.remove_sequence(_seq_name)
- # ..
- notebook._get_store_sequence()
- # remove item in treview
- notebook.remove_current_row()
- # remove current sequence
- _screen.sequence_preview.remove_item(notebook.current_item)
- # avoid current
- notebook.current_item = None
- """
+ )
+ if _key is None:
+ raise Exception('[ui.panel.notebook] on_click - key not found: %s'\
+ % str(_info['timestamp']))
+ # set path for next use
+ _key.set_path(_info['file_path'])
+ # udpate all
+ notebook.screen.refresh(key=_key)
class PanelNotebook(gtk.Frame):
@@ -213,31 +112,6 @@ class PanelNotebook(gtk.Frame):
self.add(_main_box)
# and the notebook
_main_box.pack_start(self._get_notebook(), expand=True, fill=True)
- """
- # init remove button and label
- self.remove_button, self.remove_label = self._get_remove_button()
- # ..
- _main_box.pack_start(self.remove_button, expand=False, fill=True)
- _main_box.pack_start(self.remove_label, expand=False, fill=True)
- """
-
- def _get_remove_button(self):
- # init button
- _button = ui.get_button(label=_('Remove Item from Disk'),
- stock_id='delete', width=48, padding=(5, 0))
- _button.set_border_width(2)
- _button.hide()
- # set cb
- _button.connect('clicked', _on_button_click, self)
- # init
- _label = gtk.Label()
- # set markup
- _label.set_use_markup(True)
- # align
- _label.set_padding(5, 5)
- _label.set_alignment(0, 0.5)
- # return it
- return _button, _label
def update_store(self, type_):
_store = self._store_graphic if type_ == 'graphics'\
@@ -260,8 +134,6 @@ class PanelNotebook(gtk.Frame):
_mime_type = 'image/png' if type_=='graphics' else 'audio/ogg'
# update store
for _info in storage.list_info_from_journal(mime_type=_mime_type):
- # DEBUG
- logger.debug('[ui.panel.notebook] update_store - title: %s' % _info['title'])
if _info['preview'] is None or type_ == 'sounds':
_pixbuf = image.get_pixbuf(_default_pix_path, 64, 48)
else:
@@ -315,7 +187,7 @@ class PanelNotebook(gtk.Frame):
_treeview = gtk.TreeView(_store)
_treeview.set_reorderable(False)
# cb
- _treeview.connect('cursor-changed', _cb_cursor_changed, self, type_)
+ _treeview.connect('cursor-changed', _cb_cursor_changed, self)
# show it
_treeview.show()
# add columns