From eb7fe0813854fc62d6dc8faa716bc7b9709818a5 Mon Sep 17 00:00:00 2001 From: Florent Pigout Date: Mon, 07 Nov 2011 23:42:34 +0000 Subject: small ui enhancement: go to story when select story - show edit panel when click picture --- diff --git a/activity.py b/activity.py index ff7331c..6a14b11 100644 --- a/activity.py +++ b/activity.py @@ -96,7 +96,7 @@ def _toolbar_changed(toolbox, page, activity_): # remove first if exist activity_.remove_screen('activity') # show the activity screen - activity_._change_screen(toolbar=None, name='activity') + activity_.change_screen('activity') else: pass # propagate it @@ -128,16 +128,17 @@ class AToiDeJouerActivity(activity.Activity): self.max_time = 0 # show self._toolbox.show() + self.__toolbars = {'activity': None} # init toolbars for _n in ['story', 'edit', 'help']: # init toolbar - toolbar.Toolbar(self, name=_n) + self.__toolbars[_n] = toolbar.Toolbar(self, name=_n) # set toolbox cb self._toolbox.connect('current-toolbar-changed', _toolbar_changed, self) # do anim self._thread = ThreadAnim(self) # show the activity screen - self._change_screen(toolbar=None, name='activity') + self.change_screen('activity') def get_toolbox(self): return self._toolbox @@ -188,14 +189,12 @@ class AToiDeJouerActivity(activity.Activity): else: return None - def _change_screen(self, toolbar=None, name=None): - # little check - if toolbar is None and name is None: - return - else: - # update current screen name - self._previous = self._current - self._current = toolbar.name if name is None else name + def change_screen(self, name): + # get current toolbar + toolbar = self.__toolbars[name] if name in self.__toolbars else None + # update current screen name + self._previous = self._current + self._current = name # already exist if self._current == 'edit': if self._splash is None: diff --git a/atoidejouer/ui/panel/notebook.py b/atoidejouer/ui/panel/notebook.py index 2b183b1..5b06c86 100644 --- a/atoidejouer/ui/panel/notebook.py +++ b/atoidejouer/ui/panel/notebook.py @@ -86,7 +86,7 @@ def _cb_cursor_changed(treeview, notebook): # set path for next use _key.set_path(_info['file_path']) # udpate all - notebook.screen.refresh(key=_key) + notebook.screen.refresh() # key=_key) class PanelNotebook(gtk.Frame): @@ -111,7 +111,8 @@ class PanelNotebook(gtk.Frame): # .. self.add(_main_box) # and the notebook - _main_box.pack_start(self._get_notebook(), expand=True, fill=True) + self._notebook = self._get_notebook() + _main_box.pack_start(self._notebook, expand=True, fill=True) def update_store(self, type_): _store = self._store_graphic if type_ == 'graphics'\ diff --git a/atoidejouer/ui/screen/activity.py b/atoidejouer/ui/screen/activity.py index 54cd04f..6e74f1d 100644 --- a/atoidejouer/ui/screen/activity.py +++ b/atoidejouer/ui/screen/activity.py @@ -57,8 +57,12 @@ def _on_button_click(button, screen, name, msg_label, value): pass def _on_recent_click(button, screen, timestamp): + # db path _path = storage.get_path_from_journal(timestamp, 'atoidejouer/db') + # read db screen._activity.read_file(_path) + # switch to story + screen._activity.change_screen('story') [ @@ -83,7 +87,7 @@ class ScreenActivity(gtk.ScrolledWindow): def __init__(self, activity_): gtk.ScrolledWindow.__init__(self) self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - # keep toolbar + # keep activity self._activity = activity_ # dummy flag self._initialized = False @@ -254,5 +258,5 @@ class ScreenActivity(gtk.ScrolledWindow): self._initialized = True # show all self.show() - # update toolbar + # update screen self._activity.set_canvas(self) diff --git a/atoidejouer/ui/screen/edit.py b/atoidejouer/ui/screen/edit.py index e4d5565..801f79f 100644 --- a/atoidejouer/ui/screen/edit.py +++ b/atoidejouer/ui/screen/edit.py @@ -36,7 +36,7 @@ class ScreenEdit(gtk.HBox): self._show() def add_scene(self, vbox): - self.scene = screen.ScreenStory(self.toolbar, + self.scene = ScreenStory(self.toolbar, height_offset=148, width_offset=360) vbox.pack_start(self.scene, expand=True, fill=True) diff --git a/atoidejouer/ui/screen/story.py b/atoidejouer/ui/screen/story.py index ef53f60..60aec88 100644 --- a/atoidejouer/ui/screen/story.py +++ b/atoidejouer/ui/screen/story.py @@ -27,7 +27,10 @@ def _on_drag_finish(image, event, scene, key, image_size): # logger.debug('[ui.screen.story] _on_drag_finish - rowcount: %s' % rowcount) # DEBUG # refresh - scene.toolbar.activity.get_current_screen().refresh(key=key) + _scr = scene.toolbar.activity.get_current_screen() + _scr.refresh(key=key) + # set note edit page + _scr.panel_edit._notebook.set_current_page(0) def _on_click(image, event, scene, key): @@ -37,7 +40,10 @@ def _on_click(image, event, scene, key): # invalidate key key = None # refresh - scene.toolbar.activity.get_current_screen().refresh(key=key) + _scr = scene.toolbar.activity.get_current_screen() + _scr.refresh(key=key) + # set note edit page + _scr.panel_edit._notebook.set_current_page(0) class ScreenStory(graphics.Scene): diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py index c283c57..80f156e 100644 --- a/atoidejouer/ui/toolbar.py +++ b/atoidejouer/ui/toolbar.py @@ -99,7 +99,7 @@ def _cb_back(widget, toolbar): # do switch toolbar._switch(toolbar.name.replace('_add', '')) # restore screen - toolbar.activity._change_screen(toolbar) + toolbar.activity.change_screen(toolbar.name) # get screen now _screen = toolbar.activity.get_current_screen() _screen.scene.refresh() @@ -208,7 +208,7 @@ def _cb_help_back(widget, toolbar): toolbar.activity._toolbox.set_current_toolbar( TOOLBAR_INDEXES.index(_previous.replace('_add', ''))) # restore previous - toolbar.activity._change_screen(name=_previous) + toolbar.activity.change_screen(_previous) BUTTONS = { @@ -401,7 +401,7 @@ class Toolbar(gtk.Toolbar): self._switch(self.name.replace('_add', '')) else: # update current screen - self.activity._change_screen(self) + self.activity.change_screen(self.name) if 'add' in self._button_dict: # enable or disble add _mode = config.Config().get('activity>mode') -- cgit v0.9.1