summaryrefslogtreecommitdiffstats
path: root/src/fringlib/fringui.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/fringlib/fringui.py')
-rw-r--r--src/fringlib/fringui.py50
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):