Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/readtopbar.py
diff options
context:
space:
mode:
Diffstat (limited to 'readtopbar.py')
-rw-r--r--readtopbar.py37
1 files changed, 23 insertions, 14 deletions
diff --git a/readtopbar.py b/readtopbar.py
index 3f338f5..6381f1b 100644
--- a/readtopbar.py
+++ b/readtopbar.py
@@ -18,6 +18,9 @@
import gtk, gobject
import dbus
+import logging
+
+import evince
from sugar.graphics import style
from sugar.graphics.icon import Icon, get_icon_state
@@ -134,17 +137,22 @@ class _TopBar(gtk.HBox):
self._completion_level = 0
self._progressbar = None
- bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
- proxy = bus.get_object('org.freedesktop.Hal',
- '/org/freedesktop/Hal/Manager')
- hal_manager = dbus.Interface(proxy, 'org.freedesktop.Hal.Manager')
- udis = hal_manager.FindDeviceByCapability('battery')
- if len(udis) > 0:
- self._battery = BattMan(udis[0]) # TODO: Support more than one battery
- self._battery.connect('notify::level', \
- self._battery_level_changed_cb)
- else:
+ try:
+ bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
+ proxy = bus.get_object('org.freedesktop.Hal',
+ '/org/freedesktop/Hal/Manager')
+ hal_manager = dbus.Interface(proxy, 'org.freedesktop.Hal.Manager')
+ udis = hal_manager.FindDeviceByCapability('battery')
+ if len(udis) > 0:
+ self._battery = BattMan(udis[0]) # TODO: Support more than one battery
+ self._battery.connect('notify::level', \
+ self._battery_level_changed_cb)
+ else:
+ self._battery = None
+ except dbus.exceptions.DBusException:
self._battery = None
+ logging.warning('Hardware manager service not found, no idle \
+ suspend.')
self._icon = None
@@ -188,11 +196,12 @@ class TopBar(_TopBar):
def set_document(self, document):
self._document = document
- page_cache = self._document.get_page_cache()
- page_cache.connect('page-changed', self._page_changed_cb)
+ model = evince.DocumentModel()
+ model.props.document = self._document
+ model.connect('page-changed', self._page_changed_cb)
- def _page_changed_cb(self, page, proxy = None):
- current_page = self._document.get_page_cache().get_current_page()
+ def _page_changed_cb(self, model, page_from, page_to):
+ current_page = self._model.props.page
n_pages = self._document.get_n_pages()
self.set_completion_level(current_page * 100/n_pages)