summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Back <fredericback@gmail.com>2006-09-26 14:50:38 +0000
committerFrederic Back <fredericback@gmail.com>2006-09-26 14:50:38 +0000
commitcd83ceb1f49a2c061eae69d7a1ad756d29f928dc (patch)
treefb3cbef287e11ab22a952c21927f9dddf6d9d760
parentf2b9c3e2a9fc7defa871047f0c03f2f76f4f1e2c (diff)
* display total disk usage in ring center
git-svn-id: file:///home/lennart/svn/public/fring/trunk@31 d0d2c35f-0a1e-0410-abeb-dabff30a67ee
-rw-r--r--TODO1
-rw-r--r--src/fringlib/fringrenderer.py15
-rw-r--r--src/fringlib/fringui.py2
-rw-r--r--src/fringlib/fringutil.py12
4 files changed, 24 insertions, 6 deletions
diff --git a/TODO b/TODO
index ed14e58..e3da299 100644
--- a/TODO
+++ b/TODO
@@ -14,6 +14,7 @@ TODO
[x] do not show black backrgound when app starts up
========================= DISPLAY
+[x] display total in ring center
[ ] always render text on top
[ ] make sure that filenames are always visible
[ ] do more magic adjustments
diff --git a/src/fringlib/fringrenderer.py b/src/fringlib/fringrenderer.py
index 3c4c6e9..51f5850 100644
--- a/src/fringlib/fringrenderer.py
+++ b/src/fringlib/fringrenderer.py
@@ -63,9 +63,6 @@ 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(data.the_sum))
-
n = len(data.data)
i = 0
@@ -149,17 +146,25 @@ class FringRenderer:
width *= -1
self.__register_side_link(isinstance(d, sum_list),p,value,end-start,x,y+(height/2),x+(width),y-(height/2))
-
+
if ring <= self.LABEL_UNTIL_RING:
ctx.move_to(*middle)
ctx.set_source_rgb(0, 0, 0)
# 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(data.the_sum)
+ 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 \
diff --git a/src/fringlib/fringui.py b/src/fringlib/fringui.py
index 5236af6..febce89 100644
--- a/src/fringlib/fringui.py
+++ b/src/fringlib/fringui.py
@@ -197,7 +197,7 @@ 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
diff --git a/src/fringlib/fringutil.py b/src/fringlib/fringutil.py
index e174d66..4bfa5d7 100644
--- a/src/fringlib/fringutil.py
+++ b/src/fringlib/fringutil.py
@@ -10,3 +10,15 @@ def pretty_size(size):
return "%u B" % size
+def format_disk_space(size):
+ """ Convert bytes to a human readable format.
+ Returns a tuple, for example (20,"MiB") """
+
+ if size >= 1024*1024*1024:
+ return ("%.1f"%round(size/1024/1024/1024.0),"GiB")
+ elif size >= 1024*1024:
+ return ("%.1f"%round(size/1024/1024.0),"MiB")
+ elif size >= 1024:
+ return ("%.1f"%round(size/1024.0),"KiB")
+ else:
+ return ("%u"%size,"B")