summaryrefslogtreecommitdiffstats
path: root/src/fringlib/fringrenderer.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/fringlib/fringrenderer.py')
-rw-r--r--src/fringlib/fringrenderer.py51
1 files changed, 27 insertions, 24 deletions
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)