diff options
Diffstat (limited to 'src/fringlib/fringui.py')
-rw-r--r-- | src/fringlib/fringui.py | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/src/fringlib/fringui.py b/src/fringlib/fringui.py index 5236af6..ffe624c 100644 --- a/src/fringlib/fringui.py +++ b/src/fringlib/fringui.py @@ -3,7 +3,7 @@ import cairo import sys import os -from fringwalker import FringWalker +from fringwalker import * from fringrenderer import FringRenderer from fringutil import * @@ -37,6 +37,14 @@ ui = """ <separator /> <menuitem action="Quit"/> </menu> + + <menu action="TreeWalker"> + <menuitem action="Python"/> + <menuitem action="Python gnomevfs"/> + <menuitem action="c++"/> + </menu> + + <menu action="View"> <menuitem action="Show Hidden Files"/> <separator /> @@ -56,7 +64,7 @@ ui = """ class UI( gtk.Window ): - def __init__(self, path): + def __init__(self, uri): self.busy_cursor = 0 self.backgroundColour = (1,1,1) self.data = None @@ -67,14 +75,15 @@ class UI( gtk.Window ): # create gui gtk.Window.__init__(self) self.set_title("fring"); - self.__init_gui(path) + self.__init_gui() # walk directory self.walker.connect("list-changed",self.__list_changed) self.walker.connect("finished", self.__walker_finished) - self.open_folder(path) + self.walker.connect("manually-stopped", lambda w: self.__show_busy_cursor(-1)) + self.open_folder(uri) - def __init_gui(self, path): + def __init_gui(self): # create menubar uimanager = gtk.UIManager() @@ -82,6 +91,7 @@ class UI( gtk.Window ): self.add_accel_group(accelgroup) ag_global = gtk.ActionGroup('ag_global') ag_global.add_actions([ + ('TreeWalker', None, "TreeWalker"), ('FRing', None, "_Folder"), ('View', None, "_View"), ('Help', None, "_Help"), @@ -95,8 +105,18 @@ class UI( gtk.Window ): ('About', gtk.STOCK_ABOUT, "_About", None, "About", self.about_dialog), ]) action = gtk.ToggleAction("Show Hidden Files", "Show Hidden Files", None, None) + action.set_active(True) action.connect("toggled",self.__hidden_files_toggled) ag_global.add_action(action) + + # add a menu with radio buttons to choose the walking method + ag_global.add_radio_actions([ + ('Python', None, "Python", None, None, WALKER_CLASSIC), + ('Python gnomevfs', None, "Python gnomevfs", None, None, WALKER_GNOMEVFS), + ('c++', None, "c++", None, None, WALKER_CPP), + ], 0) + self.methodaction = ag_global.get_action("c++") + uimanager.insert_action_group(ag_global, 0) uimanager.add_ui_from_string(ui) menubar = uimanager.get_widget('/MenuBar') @@ -113,7 +133,8 @@ class UI( gtk.Window ): b = gtk.FileChooserButton('Select a Folder') b.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) - b.connect("current-folder-changed", lambda w: self.__set_path(w.get_current_folder())) + + b.connect("current-folder-changed", lambda w: self.__set_path(w.get_uri())) toolbar.pack_start( b, True ) self.filechooserbutton = b @@ -155,12 +176,9 @@ class UI( gtk.Window ): self.eventbox.connect("size-allocate",self.__on_resize) self.connect("delete_event", self.close) - - - def open_folder(self,path): - print "open",path + def open_folder(self,uri): # change folder by changing the chooser button - self.filechooserbutton.set_current_folder(path) + self.filechooserbutton.set_current_folder_uri(uri) def about_dialog(self,widget): d = gtk.AboutDialog() @@ -197,15 +215,11 @@ class UI( gtk.Window ): if not self.data: return self.renderer.WIDTH = self.width self.renderer.HEIGHT = self.height - self.renderer.INNER_RADIUS = self.height/15 + self.renderer.INNER_RADIUS = self.height/12 self.renderer.RING_RADIUS = self.height/10 #self.renderer.INNER_RADIUS *= self.zoomfactor self.renderer.RING_RADIUS *= self.zoomfactor self.renderer.RINGS_MAX = 3 - - self.renderer.LABEL_UNTIL_RING = int(self.zoomfactor - 0.4) - if self.zoomfactor < 0.8: self.renderer.LABEL_UNTIL_RING = -1 - self.renderer.draw_segment(self.ctx, 0, 0, 1, 0, 1, self.data, self.path) self.image.queue_draw() self.__show_busy_cursor(-1) @@ -234,7 +248,7 @@ class UI( gtk.Window ): self.path = path self.walker.stop() if path is None: return - self.walker.walk(path); + self.walker.walk(path,self.methodaction.get_current_value()) self.__show_busy_cursor(1) def __selectfolder(self,widget): @@ -242,7 +256,7 @@ class UI( gtk.Window ): d = gtk.FileChooserDialog(None, self, gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, (gtk.STOCK_CANCEL,0,gtk.STOCK_OK,1)) - if d.run() == 1: self.open_folder(d.get_current_folder()) + if d.run() == 1: self.open_folder(d.get_uri()) d.destroy() def __hidden_files_toggled(self,widget): |