diff options
author | Frederic Back <fredericback@gmail.com> | 2006-10-02 13:20:09 +0000 |
---|---|---|
committer | Frederic Back <fredericback@gmail.com> | 2006-10-02 13:20:09 +0000 |
commit | 20aa6d080034cde750492cae86d8964d17fec24b (patch) | |
tree | 953cea6b02bb378d715032a5cc7bc32845e262f6 | |
parent | 9cc5e0807677eead4206d926b5ac295613205418 (diff) |
* Added simple parent folder memory
git-svn-id: file:///home/lennart/svn/public/fring/trunk@53 d0d2c35f-0a1e-0410-abeb-dabff30a67ee
-rw-r--r-- | src/fringlib/fringui.py | 34 |
1 files 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", "<ctrl>Up", "Zoom In", lambda w: self.zoom(w,0.2)), ('Zoom Out', gtk.STOCK_ZOOM_OUT, "Zoom _Out", "<ctrl>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", "<ctrl>R", "Refresh Tree", lambda w: self.__set_uri(self.uri)), + ('Refresh', gtk.STOCK_REFRESH, "_Refresh Tree", "<ctrl>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): |