From e39436576c68e70ac70d4ee108860d411b52d0bb Mon Sep 17 00:00:00 2001 From: Frederic Back Date: Wed, 27 Sep 2006 17:19:35 +0000 Subject: * added gnomevfs support * added menu entry to choose walking method * merged back from trunk * UI now uses gnomevfs everywhere git-svn-id: file:///home/lennart/svn/public/fring/branches/c_walker@33 d0d2c35f-0a1e-0410-abeb-dabff30a67ee --- src/fringlib/fringrenderer.py | 51 +++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'src/fringlib/fringrenderer.py') diff --git a/src/fringlib/fringrenderer.py b/src/fringlib/fringrenderer.py index f69a0a2..0f71f8a 100644 --- a/src/fringlib/fringrenderer.py +++ b/src/fringlib/fringrenderer.py @@ -1,10 +1,8 @@ import cairo import pango from math import * -#from fringwalker import sum_list from fringutil import * import os -from fringwalker import print_tree class Hotspot: @@ -55,8 +53,8 @@ class FringRenderer: if data is None: return dataname = data[0] - datadata = data[1] - datathe_sum = data[2] + datacontents = data[1] + datasize = data[2] if ring == 0: self.lookup_data = [] @@ -68,27 +66,24 @@ class FringRenderer: CENTERX, CENTERY = self.WIDTH/2, self.HEIGHT/2 ctx.move_to(CENTERX, CENTERY) - if ring == 0: - self._draw_centered_text(ctx, pretty_size(datathe_sum)) - - n = len(datadata) + n = len(datacontents) i = 0 accumulated = 0 last = start_angle - if datadata is None: return - for fn, contents, d in datadata: + if datacontents is None: return + for fn, contents, d in datacontents: + if contents == None: hasContents = False else: hasContents = True start = last - value = d # third tuple element now *always* contains the size - accumulated += value - - end = start_angle+(end_angle - start_angle)*1.0*accumulated/datathe_sum + + if datasize == 0: continue + end = start_angle+(end_angle - start_angle)*1.0*accumulated/datasize if end-start >= .01: @@ -159,17 +154,27 @@ class FringRenderer: width *= -1 self.__register_side_link(hasContents,p,value,end-start,x,y+(height/2),x+(width),y-(height/2)) - - if ring <= self.LABEL_UNTIL_RING: + + # write disk usage on segments + if self.RING_RADIUS >= ctx.text_extents("55%")[3]: ctx.move_to(*middle) ctx.set_source_rgb(0, 0, 0) + percent = (end-start)*100 + if percent >= 8: + #self._draw_centered_text2(ctx, "%.0f%%" % ((end-start)*100), pretty_size(value)) + self._draw_centered_text(ctx, "%.0f%%" %percent) - # write relative and absolute disk usage - self._draw_centered_text2(ctx, "%.0f%%" % ((end-start)*100), pretty_size(value)) - last = end i += 1 + if ring == 0: + ctx.set_source_rgb(.3,.3,.3) + i = format_disk_space(datasize) + ctx.move_to(CENTERX, CENTERY) + width,height = self._draw_centered_text(ctx, i[0], .5, 1 ) + ctx.move_to(CENTERX, CENTERY+height) + self._draw_centered_text(ctx, i[1], .5, 1 ) + def get_hotspot_at(self,x,y): for h in self.side_links: if x >= h.minx and x <= h.maxx and \ @@ -202,7 +207,9 @@ class FringRenderer: p = int(maxidx*v) # Initial estimation while True: - d = data[p] + + try: d = data[p] + except IndexError: return None if v <= d.start: maxidx = p-1 @@ -244,10 +251,6 @@ class FringRenderer: (t,p,v), (v,p,q))[int(h)] - def _list_value(self,l): - if isinstance(l, sum_list): - return l.the_sum - return l def _choose_color(self,v, ring): color = self.hsv2rgb(v, .61, 1-ring*0.1) -- cgit