diff options
author | Frederic Back <fredericback@gmail.com> | 2006-09-26 14:50:38 +0000 |
---|---|---|
committer | Frederic Back <fredericback@gmail.com> | 2006-09-26 14:50:38 +0000 |
commit | cd83ceb1f49a2c061eae69d7a1ad756d29f928dc (patch) | |
tree | fb3cbef287e11ab22a952c21927f9dddf6d9d760 | |
parent | f2b9c3e2a9fc7defa871047f0c03f2f76f4f1e2c (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-- | TODO | 1 | ||||
-rw-r--r-- | src/fringlib/fringrenderer.py | 15 | ||||
-rw-r--r-- | src/fringlib/fringui.py | 2 | ||||
-rw-r--r-- | src/fringlib/fringutil.py | 12 |
4 files changed, 24 insertions, 6 deletions
@@ -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") |