From 6329f5f55e5e1b0a2fb8b2e877a4764cbff29d43 Mon Sep 17 00:00:00 2001 From: florent Date: Wed, 22 Jun 2011 08:27:40 +0000 Subject: move add frame to sequence action to notebok for easier use --- diff --git a/activity.py b/activity.py index 2cc4574..7add340 100644 --- a/activity.py +++ b/activity.py @@ -238,16 +238,19 @@ class AToiDeJouerActivity(activity.Activity): else: # update current screen name self._current = toolbar.name if name is None else name - # init splash - if self._current in ['graphics', 'sounds']: + # already exist + if self._current in self._screens: + self.__idle_change(toolbar) + # create new screen + elif self._current in ['graphics', 'sounds']: if self.__splash is None: self.__splash = screens.Splash(toolbar) else: self.__splash._show() # ... glib.idle_add(partial(self.__idle_change, toolbar)) + # .. default else: - # .. self.__idle_change(toolbar) def __idle_change(self, toolbar): diff --git a/atoidejouer/tools/storage.py b/atoidejouer/tools/storage.py index f18e892..0e471cd 100644 --- a/atoidejouer/tools/storage.py +++ b/atoidejouer/tools/storage.py @@ -67,6 +67,45 @@ def get_sequence_first_graphic_name(type_, sequence_name): return None if len(_names) == 0 else _names[0].strip() +def sequence_save(toolbar, remove=False): + # get sequence name + _name = toolbar._sequence_entry.get_text() + # get screen + _screen = toolbar.activity.get_current_screen() + # get nb of graphics + _nb_of_items = _screen.sequence_preview.number_of_items() + # type shortcut 'graphic' or 'sound' + _type = _screen.notebook._type + # get sequence path + _seq_path = get_sequence_path(_type, _name) + # little check + if _name.strip() == '': + return + elif _nb_of_items == 0\ + and remove is True: + # remove from files + os.remove(_seq_path) + # .. + _keys = toolbar.activity.graphic_keys\ + if toolbar.name == 'graphics_add'\ + else toolbar.activity.sound_keys + # remove from keys + _keys.remove_sequence(_name) + else: + # open file + _file = open(_seq_path, 'wb') + # update + for _filename in _screen.sequence_preview.items: + _filename = _filename.strip() + if _filename == '': + continue + else: + _file.write('%s\n' % _filename) + _file.close() + # update notebook + _screen.notebook._get_store_sequence() + + def get_sound_path(filename, dir_='sounds'): # return path return os.path.join(activity.get_activity_root(), 'data', dir_, diff --git a/atoidejouer/ui/notebook.py b/atoidejouer/ui/notebook.py index 261e4cb..cfeb0f8 100644 --- a/atoidejouer/ui/notebook.py +++ b/atoidejouer/ui/notebook.py @@ -41,6 +41,11 @@ def _cb_swicth_page(widget, page, page_num, notebook): def _cb_cursor_changed(treeview, notebook, type_): # get the current cursor and path _path, _column = treeview.get_cursor() + # DEBUG + if _column is None: + return + else: + pass # get model _model = treeview.get_model() # get resource info @@ -102,6 +107,22 @@ def _cb_cursor_changed(treeview, notebook, type_): notebook.update_store_sequence() else: pass + # .. add action - add column as no title + if _column.get_title() is None: + # get graphic name + _item_name = notebook.current_item + _sequence_name = notebook.current_sequence + if _sequence_name is None\ + or _sequence_name.strip() == ''\ + or _item_name is None: + pass + else: + # udpate sequence preview + notebook.screen.sequence_preview.add_item(_item_name) + # update sequence file + storage.sequence_save(notebook.screen.toolbar, remove=remove) + else: + pass def __remove_filename_from_sequence(type_, sequence, filename): @@ -264,8 +285,11 @@ class ResourceNotebook(gtk.Frame): def _get_store_sequence(self): # init store if self._store_sequence is None: - self._store_sequence = gtk.ListStore(gtk.gdk.Pixbuf, - gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) + self._store_sequence = gtk.ListStore( + gtk.gdk.Pixbuf, + gobject.TYPE_STRING, + gobject.TYPE_PYOBJECT + ) else: self._store_sequence.clear() # prepare dir path @@ -299,11 +323,17 @@ class ResourceNotebook(gtk.Frame): def _get_store_graphic(self): # init/reset store if self._store_graphic is None: - self._store_graphic = gtk.ListStore(gtk.gdk.Pixbuf, - gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) + self._store_graphic = gtk.ListStore( + gtk.gdk.Pixbuf, + gobject.TYPE_STRING, + gtk.gdk.Pixbuf, + gobject.TYPE_PYOBJECT + ) else: self._store_graphic.clear() # .. + _add_path = storage.get_icon_path('more_small') + # .. _graphic_dir = os.path.join(activity.get_activity_root(), 'data', 'graphics') # .. @@ -325,8 +355,9 @@ class ResourceNotebook(gtk.Frame): continue # .. _pixbuf = image.get_pixbuf(_path, 64, 48) + _pix_a = image.get_pixbuf(_add_path, 24, 24) # do update - self._store_graphic.append([_pixbuf, _filename, _path]) + self._store_graphic.append([_pixbuf, _filename, _pix_a, _path]) else: continue # return the store @@ -335,12 +366,17 @@ class ResourceNotebook(gtk.Frame): def _get_store_sound(self): # init/reset store if self._store_sound is None: - self._store_sound = gtk.ListStore(gtk.gdk.Pixbuf, - gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) + self._store_sound = gtk.ListStore( + gtk.gdk.Pixbuf, + gobject.TYPE_STRING, + gtk.gdk.Pixbuf, + gobject.TYPE_PYOBJECT + ) else: self._store_sound.clear() # prepare icon path _pix_path = storage.get_image_path('sound', dir_='data') + _add_path = storage.get_icon_path('more_small') # .. _sound_dir = os.path.join(activity.get_activity_root(), 'data', 'sounds') @@ -363,8 +399,9 @@ class ResourceNotebook(gtk.Frame): continue # .. _pixbuf = image.get_pixbuf(_pix_path, 64, 48) + _pix_a = image.get_pixbuf(_add_path, 24, 24) # do update - self._store_sound.append([_pixbuf, _filename, _path]) + self._store_sound.append([_pixbuf, _filename, _pix_a, _path]) else: continue # return the store @@ -380,19 +417,27 @@ class ResourceNotebook(gtk.Frame): # prepare preview _pixbuf = storage.get_pixbuf_from_data(_i['preview'], size=(64, 48)) + # .. + _add_path = storage.get_icon_path('more_small') + _pix_a = image.get_pixbuf(_add_path, 24, 24) # store info _store_info = { 'activity_id':_i['activity_id'], 'timestamp': _i['timestamp'] } # do update - self._store_journal.append([_pixbuf, _i['title'], _store_info]) + _row = [_pixbuf, _i['title'], _pix_a, _store_info] + self._store_journal.append(_row) def _get_store_journal(self): # init/reset store if self._store_journal is None: - self._store_journal = gtk.ListStore(gtk.gdk.Pixbuf, - gobject.TYPE_STRING, gobject.TYPE_PYOBJECT) + self._store_journal = gtk.ListStore( + gtk.gdk.Pixbuf, + gobject.TYPE_STRING, + gtk.gdk.Pixbuf, + gobject.TYPE_PYOBJECT + ) else: self._store_journal.clear() # app to get the journal entries @@ -419,6 +464,7 @@ class ResourceNotebook(gtk.Frame): # prepare colums _col_preview = gtk.TreeViewColumn(_('Preview')) _col_description = gtk.TreeViewColumn(_('Name')) + _col_add = gtk.TreeViewColumn() # set renderers _cell_pix = gtk.CellRendererPixbuf() _cell_pix.set_property('height', 50) @@ -427,8 +473,21 @@ class ResourceNotebook(gtk.Frame): # .. _cell_text = gtk.CellRendererText() _cell_text.set_property('height', 50) - _col_description.pack_start(_cell_text, expand=True) + _col_description.pack_start(_cell_text, expand=False) _col_description.add_attribute(_cell_text, 'text', 1) + _col_description.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) + # .. + if type_ == 'sequence': + _col_description.set_fixed_width(220) + else: + _col_description.set_fixed_width(250) + # .. + _cell_add = gtk.CellRendererPixbuf() + _cell_add.set_property('height', 50) + _col_add.pack_start(_cell_add, expand=False) + _col_add.add_attribute(_cell_add, 'pixbuf', 2) + _col_add.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) + _col_add.set_fixed_width(30) # update store if type_ == 'sequence': _store = self._get_store_sequence() @@ -453,6 +512,11 @@ class ResourceNotebook(gtk.Frame): _treeview.append_column(_col_preview) _treeview.append_column(_col_description) # .. + if type_ == 'sequence': + pass + else: + _treeview.append_column(_col_add) + # .. _scrolled_win.add(_treeview) # return it return _scrolled_win diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py index 7dc33cb..6b7fd4a 100644 --- a/atoidejouer/ui/toolbar.py +++ b/atoidejouer/ui/toolbar.py @@ -96,44 +96,8 @@ def _cb_seq_remove(widget, toolbar): def _cb_seq_save(widget, toolbar, remove=False): - # get sequence name - _name = toolbar._sequence_entry.get_text() - # get screen - _screen = toolbar.activity.get_current_screen() - # get nb of graphics - _nb_of_items = _screen.sequence_preview.number_of_items() - # type shortcut 'graphic' or 'sound' - _type = _screen.notebook._type - # little check - if _name.strip() == '': - return - elif _nb_of_items == 0\ - and remove is True: - # get sequence path - _seq_path = storage.get_sequence_path(_type, _name) - # remove from files - os.remove(_seq_path) - # .. - _keys = toolbar.activity.graphic_keys\ - if toolbar.name == 'graphics_add'\ - else toolbar.activity.sound_keys - # remove from keys - _keys.remove_sequence(_name) - else: - # get sequence path - _seq_path = storage.get_sequence_path(_type, _name) - # open file - _file = open(_seq_path, 'wb') - # update - for _filename in _screen.sequence_preview.items: - _filename = _filename.strip() - if _filename == '': - continue - else: - _file.write('%s\n' % _filename) - _file.close() - # update notebook - _screen.notebook._get_store_sequence() + # .. + storage.sequence_save(toolbar, remove=remove) def _show_browser(toolbar, cls): @@ -165,23 +129,6 @@ def _cb_add(widget, toolbar): # browser screen factory if toolbar.name == 'graphics': _show_browser(toolbar, screens.ScreenBrowserGraphics) - # add graphic to the sequence - elif toolbar.name in ['graphics_add', 'sounds_add']: - # get current screen - _screen = toolbar.activity.get_current_screen() - # get graphic name - _item_name = _screen.notebook.current_item - # .. - _sequence_name = _screen.notebook.current_sequence - if _sequence_name is None\ - or _sequence_name.strip() == ''\ - or _item_name is None: - pass - else: - # udpate sequence preview - _screen.sequence_preview.add_item(_item_name) - # update sequence file - _cb_seq_save(widget, toolbar) # .. elif toolbar.name == 'sounds': _show_browser(toolbar, screens.ScreenBrowserSounds) @@ -398,8 +345,8 @@ TOOLBARS = { 'graphics_add' : [ ['seq_new', 'seq_name', 'seq_save', 'seq_remove', 'separator', - 'add', 'remove', - 'separator', + # 'add', 'remove', + # ''separator', 'frame_before', 'frame_entry', 'frame_after'], ['import', 'back'] ], @@ -412,8 +359,8 @@ TOOLBARS = { 'sounds_add' : [ ['seq_new', 'seq_name', 'seq_save', 'seq_remove', 'separator', - 'add', 'remove', - 'separator', + # 'add', 'remove', + # ''separator', 'frame_before', 'frame_entry', 'frame_after'], ['import', 'back'] ], -- cgit v0.9.1