diff options
Diffstat (limited to 'evinceadapter.py')
-rw-r--r-- | evinceadapter.py | 86 |
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)) |