summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Back <fredericback@gmail.com>2006-10-02 13:20:09 +0000
committerFrederic Back <fredericback@gmail.com>2006-10-02 13:20:09 +0000
commit20aa6d080034cde750492cae86d8964d17fec24b (patch)
tree953cea6b02bb378d715032a5cc7bc32845e262f6
parent9cc5e0807677eead4206d926b5ac295613205418 (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.py34
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):