diff options
Diffstat (limited to 'atoidejouer/ui/panel/notebook.py')
-rw-r--r-- | atoidejouer/ui/panel/notebook.py | 198 |
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 |