From cd83ceb1f49a2c061eae69d7a1ad756d29f928dc Mon Sep 17 00:00:00 2001 From: Frederic Back Date: Tue, 26 Sep 2006 14:50:38 +0000 Subject: * display total disk usage in ring center git-svn-id: file:///home/lennart/svn/public/fring/trunk@31 d0d2c35f-0a1e-0410-abeb-dabff30a67ee --- TODO | 1 + src/fringlib/fringrenderer.py | 15 ++++++++++----- src/fringlib/fringui.py | 2 +- src/fringlib/fringutil.py | 12 ++++++++++++ 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") -- cgit