From 20aa6d080034cde750492cae86d8964d17fec24b Mon Sep 17 00:00:00 2001 From: Frederic Back Date: Mon, 2 Oct 2006 13:20:09 +0000 Subject: * Added simple parent folder memory git-svn-id: file:///home/lennart/svn/public/fring/trunk@53 d0d2c35f-0a1e-0410-abeb-dabff30a67ee --- src/fringlib/fringui.py | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/fringlib/fringui.py b/src/fringlib/fringui.py index 1a5025d..18b9217 100644 --- a/src/fringlib/fringui.py +++ b/src/fringlib/fringui.py @@ -65,6 +65,8 @@ class UI( gtk.Window ): self.walker = FringWalker(); self.scan_active = False + self.folder_memory = {} # remember some folders + # create gui gtk.Window.__init__(self) self.set_title("fring"); @@ -93,7 +95,7 @@ class UI( gtk.Window ): ('Zoom In', gtk.STOCK_ZOOM_IN, "Zoom _In", "Up", "Zoom In", lambda w: self.zoom(w,0.2)), ('Zoom Out', gtk.STOCK_ZOOM_OUT, "Zoom _Out", "Down", "Zoom Out", lambda w: self.zoom(w,-0.2)), ('Save Image...', gtk.STOCK_SAVE_AS, "_Save Image...", None, "Save Image...", self.save_image), - ('Refresh', gtk.STOCK_REFRESH, "_Refresh Tree", "R", "Refresh Tree", lambda w: self.__set_uri(self.uri)), + ('Refresh', gtk.STOCK_REFRESH, "_Refresh Tree", "R", "Refresh Tree", self.__refresh_tree), ('About', gtk.STOCK_ABOUT, "_About", None, "About", self.about_dialog), ]) action = gtk.ToggleAction("Show Hidden Files", "Show Hidden Files", None, None) @@ -234,12 +236,26 @@ class UI( gtk.Window ): def __set_uri(self,uri): """ Set a path and start parsing. Also used to refresh or reset. """ - self.uri = uri + + if uri in self.folder_memory: + self.data = self.folder_memory[uri] + self.uri = uri + self.redraw() + + else: + self.uri = uri + self.walker.stop() + if uri: + self.walker.walk(uri) + self.scan_active = True + self.__show_busy_cursor(1) + + def __refresh_tree(self,widget): + """ Refresh the current folder """ self.walker.stop() - if uri: - self.walker.walk(uri) - self.scan_active = True - self.__show_busy_cursor(1) + self.walker.walk(self.uri) + self.scan_active = True + self.__show_busy_cursor(1) def __selectfolder(self,widget): """ Open a dialog to select a folder """ @@ -278,10 +294,14 @@ class UI( gtk.Window ): else: # if we are sure that the sumlist is complete, jump there directly + + self.folder_memory[self.uri] = self.data # remember current data + + # block filechooser callbacks while changing it self.filechooserbutton.handler_block(self.filechooserbutton.handler_folderchanged) + self.uri = f.path self.__list_changed(None,f.sumlist) self.filechooserbutton.set_current_folder_uri(f.path) - self.uri = f.path self.filechooserbutton.handler_unblock(self.filechooserbutton.handler_folderchanged) def __scroll_event(self, widget, event): -- cgit