Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar

This commit is contained in:
Marco Pesenti Gritti 2007-08-17 19:56:06 +02:00
commit e6ab812294
3 changed files with 43 additions and 13 deletions

View File

@ -63,6 +63,11 @@ class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
devices_model.connect('device-disappeared', devices_model.connect('device-disappeared',
self._device_disappeared_cb) self._device_disappeared_cb)
self._redraw_id = None
def __del__(self):
self.suspend()
def _add_device(self, device): def _add_device(self, device):
view = deviceview.create(device) view = deviceview.create(device)
self.append(view, hippo.PACK_FIXED) self.append(view, hippo.PACK_FIXED)
@ -103,6 +108,23 @@ class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
i += 1 i += 1
_REDRAW_TIMEOUT = 5 * 60 * 1000 # 5 minutes
def resume(self):
self._redraw_activity_ring()
if self._redraw_id is None:
self._redraw_id = gobject.timeout_add(self._REDRAW_TIMEOUT,
self._redraw_activity_ring)
def suspend(self):
if self._redraw_id is not None:
gobject.source_remove(self._redraw_id)
self._redraw_id = None
def _redraw_activity_ring(self):
self._donut.emit_request_changed()
return True
def has_activities(self): def has_activities(self):
return self._donut.has_activities() return self._donut.has_activities()

View File

@ -64,6 +64,7 @@ class HomeWindow(gtk.Window):
self._mesh_box = MeshBox(shell) self._mesh_box = MeshBox(shell)
self._transition_box = TransitionBox() self._transition_box = TransitionBox()
self._activate_view()
self._canvas.set_root(self._home_box) self._canvas.set_root(self._home_box)
self._transition_box.connect('completed', self._transition_box.connect('completed',
@ -93,22 +94,28 @@ class HomeWindow(gtk.Window):
if keyname == "Alt_L": if keyname == "Alt_L":
self._home_box.release() self._home_box.release()
def _update_mesh_state(self): def _deactivate_view(self):
if self._active and self._level == ShellModel.ZOOM_MESH: if self._level == ShellModel.ZOOM_HOME:
self._mesh_box.resume() self._home_box.suspend()
else: elif self._level == ShellModel.ZOOM_MESH:
self._mesh_box.suspend() self._mesh_box.suspend()
def _activate_view(self):
if self._level == ShellModel.ZOOM_HOME:
self._home_box.resume()
elif self._level == ShellModel.ZOOM_MESH:
self._mesh_box.resume()
def _focus_in_cb(self, widget, event): def _focus_in_cb(self, widget, event):
self._active = True self._activate_view()
self._update_mesh_state()
def _focus_out_cb(self, widget, event): def _focus_out_cb(self, widget, event):
self._active = False self._deactivate_view()
self._update_mesh_state()
def set_zoom_level(self, level): def set_zoom_level(self, level):
self._deactivate_view()
self._level = level self._level = level
self._activate_view()
self._canvas.set_root(self._transition_box) self._canvas.set_root(self._transition_box)
@ -129,7 +136,5 @@ class HomeWindow(gtk.Window):
elif self._level == ShellModel.ZOOM_MESH: elif self._level == ShellModel.ZOOM_MESH:
self._canvas.set_root(self._mesh_box) self._canvas.set_root(self._mesh_box)
self._update_mesh_state()
def get_home_box(self): def get_home_box(self):
return self._home_box return self._home_box

View File

@ -16,6 +16,7 @@
import colorsys import colorsys
from gettext import gettext as _ from gettext import gettext as _
import logging
import math import math
import hippo import hippo
@ -317,10 +318,12 @@ class ActivitiesDonut(hippo.CanvasBox, hippo.CanvasItem):
'expected format' % pid) 'expected format' % pid)
# Next, see how much free memory is left. # Next, see how much free memory is left.
free_memory = 0
try: try:
meminfo = open('/proc/meminfo') meminfo = open('/proc/meminfo')
meminfo.readline() for line in meminfo.readlines():
free_memory = int(meminfo.readline()[9:-3]) if line.startswith('MemFree:') or line.startswith('SwapFree:'):
free_memory += int(line[9:-3])
meminfo.close() meminfo.close()
except IOError: except IOError:
logging.warn('ActivitiesDonut: could not read /proc/meminfo') logging.warn('ActivitiesDonut: could not read /proc/meminfo')