diff options
author | Lucian Branescu Mihaila <lucian.branescu@gmail.com> | 2010-12-05 17:41:18 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2011-01-20 17:00:01 (GMT) |
commit | 5832d4df2cfd4478463ec581e21ac4f2bc92ad21 (patch) | |
tree | 0c6da4af835adc65b25a55968fedf4235a8b5977 /readtopbar.py | |
parent | 09a7e07c1d49bb6d4df3920fdb92a0169efe24d6 (diff) |
adapt to evince 2.30 API (SL#1900)
PDFs are working fine, EPub support is limited:
- search not working
- copy to clipboard disabled
- zoom disabled
- page next/prev disabled
Tested-by: Sascha Silbe <sascha-pgp@silbe.org>
[combined into a single patch, wrote patch description, minor style clean-ups]
Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
Diffstat (limited to 'readtopbar.py')
-rw-r--r-- | readtopbar.py | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/readtopbar.py b/readtopbar.py index 630601b..c6ce422 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 @@ -133,17 +136,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 @@ -189,11 +197,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) |