Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/evinceadapter.py
diff options
context:
space:
mode:
Diffstat (limited to 'evinceadapter.py')
-rw-r--r--evinceadapter.py86
1 files changed, 39 insertions, 47 deletions
diff --git a/evinceadapter.py b/evinceadapter.py
index 3e2d647..632ff96 100644
--- a/evinceadapter.py
+++ b/evinceadapter.py
@@ -1,9 +1,8 @@
-from gi.repository import GObject
-from gi.repository import Gtk
+import gobject
import logging
+import gtk
-from gi.repository import EvinceDocument
-from gi.repository import EvinceView
+import evince
_logger = logging.getLogger('read-activity')
@@ -12,50 +11,42 @@ class EvinceViewer():
def __init__(self):
self._view_notify_zoom_handler = None
- EvinceDocument.init()
- self._view = EvinceView.View()
+ self._view = evince.View()
def setup(self, activity):
self._activity = activity
self._view.connect('selection-changed',
activity._view_selection_changed_cb)
- activity._scrolled = Gtk.ScrolledWindow()
- activity._scrolled.set_policy(Gtk.PolicyType.AUTOMATIC,
- Gtk.PolicyType.AUTOMATIC)
- activity._scrolled.props.shadow_type = Gtk.ShadowType.NONE
+ activity._scrolled = gtk.ScrolledWindow()
+ activity._scrolled.set_policy(gtk.POLICY_AUTOMATIC,
+ gtk.POLICY_AUTOMATIC)
+ activity._scrolled.props.shadow_type = gtk.SHADOW_NONE
activity._scrolled.add(self._view)
self._view.show()
- activity._hbox.pack_start(activity._scrolled, True, True, 0)
+ activity._hbox.pack_start(activity._scrolled, expand=True, fill=True)
activity._scrolled.show()
self.dpi = activity.dpi
def load_document(self, file_path):
try:
- self._document = \
- EvinceDocument.Document.factory_get_document(file_path)
- except GObject.GError, e:
+ self._document = evince.document_factory_get_document(file_path)
+ except gobject.GError, e:
_logger.error('Can not load document: %s', e)
return
else:
- self._model = EvinceView.DocumentModel()
+ self._model = evince.DocumentModel()
self._model.set_document(self._document)
self._view.set_model(self._model)
# set dpi
- # TODO why we need set this?
- """
min_scale = self._model.get_min_scale()
max_scale = self._model.get_max_scale()
- logging.error("min scale %s max_scale %s", min_scale, max_scale)
- logging.error("setting min scale %s", min_scale * self.dpi / 72.0)
- logging.error("setting max scale %s", max_scale * self.dpi / 72.0)
self._model.set_min_scale(min_scale * self.dpi / 72.0)
self._model.set_max_scale(max_scale * self.dpi / 72.0)
- """
def get_current_page(self):
return self._model.props.page
@@ -85,15 +76,16 @@ class EvinceViewer():
sizing_mode = self.metadata.get('Read_sizing_mode', 'fit-width')
_logger.debug('Found sizing mode: %s', sizing_mode)
if sizing_mode == "best-fit":
- self._model.set_sizing_mode(EvinceView.SizingMode.BEST_FIT)
+ self._model.props.sizing_mode = evince.SIZING_BEST_FIT
if hasattr(self._view, 'update_view_size'):
self._view.update_view_size(self._scrolled)
elif sizing_mode == "free":
- self._model.set_sizing_mode(EvinceView.SizingMode.FREE)
- self._model.set_scale(float(self.metadata.get('Read_zoom', '1.0')))
+ self._model.props.sizing_mode = evince.SIZING_FREE
+ self._model.props.scale = \
+ float(self.metadata.get('Read_zoom', '1.0'))
_logger.debug('Set zoom to %f', self._model.props.scale)
elif sizing_mode == "fit-width":
- self._model.set_sizing_mode(EvinceView.SizingMode.FIT_WIDTH)
+ self._model.props.sizing_mode = evince.SIZING_FIT_WIDTH
if hasattr(self._view, 'update_view_size'):
self._view.update_view_size(self._scrolled)
else:
@@ -101,21 +93,21 @@ class EvinceViewer():
# version of Read, for example.
_logger.warning("Unknown sizing_mode state '%s'", sizing_mode)
if self.metadata.get('Read_zoom', None) is not None:
- self._model.set_scale(float(self.metadata['Read_zoom']))
+ self._model.props.scale = float(self.metadata['Read_zoom'])
def update_metadata(self, activity):
self.metadata = activity.metadata
self.metadata['Read_zoom'] = str(self._model.props.scale)
- if self._model.get_sizing_mode() == EvinceView.SizingMode.BEST_FIT:
+ if self._model.props.sizing_mode == evince.SIZING_BEST_FIT:
self.metadata['Read_sizing_mode'] = "best-fit"
- elif self._model.get_sizing_mode() == EvinceView.SizingMode.FREE:
+ elif self._model.props.sizing_mode == evince.SIZING_FREE:
self.metadata['Read_sizing_mode'] = "free"
- elif self._model.get_sizing_mode() == EvinceView.SizingMode.FIT_WIDTH:
+ elif self._model.props.sizing_mode == evince.SIZING_FIT_WIDTH:
self.metadata['Read_sizing_mode'] = "fit-width"
else:
_logger.error("Don't know how to save sizing_mode state '%s'" %
- self._model.get_sizing_mode())
+ self._model.props.sizing_mode)
self.metadata['Read_sizing_mode'] = "fit-width"
def can_highlight(self):
@@ -134,7 +126,7 @@ class EvinceViewer():
'''
Sets the current zoom level
'''
- self._model.props.sizing_mode = EvinceView.SizingMode.FREE
+ self._model.props.sizing_mode = evince.SIZING_FREE
if not self._view_notify_zoom_handler:
return
@@ -150,18 +142,18 @@ class EvinceViewer():
'''
Zooms in (increases zoom level by 0.1)
'''
- self._model.props.sizing_mode = EvinceView.SizingMode.FREE
+ self._model.props.sizing_mode = evince.SIZING_FREE
self._view.zoom_in()
def zoom_out(self):
'''
Zooms out (decreases zoom level by 0.1)
'''
- self._model.props.sizing_mode = EvinceView.SizingMode.FREE
+ self._model.props.sizing_mode = evince.SIZING_FREE
self._view.zoom_out()
def zoom_to_width(self):
- self._model.props.sizing_mode = EvinceView.SizingMode.FIT_WIDTH
+ self._model.props.sizing_mode = evince.SIZING_FIT_WIDTH
def can_zoom_in(self):
'''
@@ -179,10 +171,10 @@ class EvinceViewer():
return True
def zoom_to_best_fit(self):
- self._model.props.sizing_mode = EvinceView.SizingMode.BEST_FIT
+ self._model.props.sizing_mode = evince.SIZING_BEST_FIT
def zoom_to_actual_size(self):
- self._model.props.sizing_mode = EvinceView.SizingMode.FREE
+ self._model.props.sizing_mode = evince.SIZING_FREE
self._model.props.scale = 1.0
def connect_zoom_handler(self, handler):
@@ -230,23 +222,23 @@ class EvinceViewer():
Scrolls through the pages.
Scrolling is horizontal if horizontal is set to True
Valid scrolltypes are:
- Gtk.ScrollType.PAGE_BACKWARD, Gtk.ScrollType.PAGE_FORWARD,
- Gtk.ScrollType.STEP_BACKWARD, Gtk.ScrollType.STEP_FORWARD,
- Gtk.ScrollType.START and Gtk.ScrollType.END
+ gtk.SCROLL_PAGE_BACKWARD, gtk.SCROLL_PAGE_FORWARD,
+ gtk.SCROLL_STEP_BACKWARD, gtk.SCROLL_STEP_FORWARD,
+ gtk.SCROLL_START and gtk.SCROLL_END
'''
_logger.error('scroll: %s', scrolltype)
- if scrolltype == Gtk.ScrollType.PAGE_BACKWARD:
- self._view.scroll(Gtk.ScrollType.PAGE_BACKWARD, horizontal)
- elif scrolltype == Gtk.ScrollType.PAGE_FORWARD:
- self._view.scroll(Gtk.ScrollType.PAGE_FORWARD, horizontal)
- elif scrolltype == Gtk.ScrollType.STEP_BACKWARD:
+ if scrolltype == gtk.SCROLL_PAGE_BACKWARD:
+ self._view.scroll(gtk.SCROLL_PAGE_BACKWARD, horizontal)
+ elif scrolltype == gtk.SCROLL_PAGE_FORWARD:
+ self._view.scroll(gtk.SCROLL_PAGE_FORWARD, horizontal)
+ elif scrolltype == gtk.SCROLL_STEP_BACKWARD:
self._scroll_step(False, horizontal)
- elif scrolltype == Gtk.ScrollType.STEP_FORWARD:
+ elif scrolltype == gtk.SCROLL_STEP_FORWARD:
self._scroll_step(True, horizontal)
- elif scrolltype == Gtk.ScrollType.START:
+ elif scrolltype == gtk.SCROLL_START:
self.set_current_page(0)
- elif scrolltype == Gtk.ScrollType.END:
+ elif scrolltype == gtk.SCROLL_END:
self.set_current_page(self._document.get_n_pages())
else:
print ('Got unsupported scrolltype %s' % str(scrolltype))