Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucian Branescu Mihaila <lucian.branescu@gmail.com>2010-07-19 23:19:35 (GMT)
committer Lucian Branescu Mihaila <lucian.branescu@gmail.com>2010-07-19 23:19:35 (GMT)
commit27d4e293e7381d5ce575af00904a0d420ef2e479 (patch)
tree9ddd5ef1d4e20ed2255c3653160fc3c5183c60c4
parent6f5283eb8dc76e77fc062d1a3d1669e9cdc272e1 (diff)
Port most of readactivity.py to libevview 2.30. set_screen_dpi disabled for now. Avoid crash if HAL dbus service is not available.
-rw-r--r--readactivity.py17
-rw-r--r--readtopbar.py26
2 files changed, 30 insertions, 13 deletions
diff --git a/readactivity.py b/readactivity.py
index 48cc1cd..d17d6cd 100644
--- a/readactivity.py
+++ b/readactivity.py
@@ -767,7 +767,7 @@ class ReadActivity(activity.Activity):
def _setup_evince_viewer(self):
self._view = evince.View()
- self._view.set_screen_dpi(_get_screen_dpi())
+ #self._view.set_screen_dpi(_get_screen_dpi())
self._view.connect('notify::has-selection',
self._view_notify_has_selection_cb)
@@ -798,7 +798,11 @@ class ReadActivity(activity.Activity):
else:
self._setup_evince_viewer()
try:
- self._document = evince.factory_get_document(filepath)
+ try: # assume libevview <=2.28
+ self._document = evince.factory_get_document(filepath)
+ except AttributeError: # must be on libevview >=2.30
+ self._document = evince.document_factory_get_document(
+ filepath)
except GError, e:
_logger.error('Can not load document: %s', e)
return
@@ -807,7 +811,14 @@ class ReadActivity(activity.Activity):
self._edit_toolbar.set_view(self._view)
self._want_document = False
- self._view.set_document(self._document)
+
+ try: # assume libevview <=2.28
+ self._view.set_document(self._document)
+ except AttributeError: #must be on libevview >=2.30
+ self._model = evince.DocumentModel()
+ self._model.set_document(self._document)
+ selv._view.set_model(self._model)
+
self._edit_toolbar.set_document(self._document)
self._topbar.set_document(self._document)
diff --git a/readtopbar.py b/readtopbar.py
index 3f338f5..936fff0 100644
--- a/readtopbar.py
+++ b/readtopbar.py
@@ -18,6 +18,7 @@
import gtk, gobject
import dbus
+import logging
from sugar.graphics import style
from sugar.graphics.icon import Icon, get_icon_state
@@ -134,17 +135,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("HAL dbus service not found, disabling power \
+ management during reading.")
self._icon = None