diff options
Diffstat (limited to 'readtoolbar.py')
-rw-r--r-- | readtoolbar.py | 82 |
1 files changed, 17 insertions, 65 deletions
diff --git a/readtoolbar.py b/readtoolbar.py index 2785ed8..a51eff6 100644 --- a/readtoolbar.py +++ b/readtoolbar.py @@ -31,9 +31,6 @@ from sugar.graphics.menuitem import MenuItem from sugar.graphics import iconentry from sugar.activity import activity -# Handle libevview 2.80's new API trac#1900 -_EVINCE_2_80 = hasattr(evince, 'document_factory_get_document') - class EditToolbar(activity.EditToolbar): __gtype_name__ = 'EditToolbar' @@ -248,67 +245,39 @@ class ViewToolbar(gtk.Toolbar): self._fullscreen.show() self._view_notify_zoom_handler = None - self._view_notify_scale_handler = None - def set_view(self, view): + def set_view(self, view, model): + self._evince_model = model self._evince_view = view - if _EVINCE_2_80: - self._zoom_spin.props.value = self._evince_model.props.scale * 100 - self._view_notify_scale_handler = self._evince_model.connect( - 'notify::scale', self._view_notify_scale_cb) - else: - self._zoom_spin.props.value = self._evince_view.props.zoom * 100 - self._view_notify_zoom_handler = self._evince_view.connect( - 'notify::zoom', self._view_notify_zoom_cb) + self._zoom_spin.props.value = self._evince_model.props.scale * 100 + self._view_notify_zoom_handler = self._evince_model.connect( + 'notify::scale', self._view_notify_zoom_cb) self._update_zoom_buttons() - def set_model(self, model): - self._evince_model = model - def _zoom_spin_notify_value_cb(self, zoom_spin, pspec): if not self._view_notify_zoom_handler: return - if _EVINCE_2_80: - self._evince_model.disconnect(self._view_notify_scale_handler) - else: - self._evince_view.disconnect(self._view_notify_zoom_handler) - + self._evince_model.disconnect(self._view_notify_zoom_handler) try: - if hasattr(self._evince_view.props, 'sizing_mode'): - self._evince_view.props.sizing_mode = evince.SIZING_FREE - if _EVINCE_2_80: - self._evince_model.props.scale = zoom_spin.props.value / 100.0 - else: - self._evince_view.props.zoom = zoom_spin.props.value / 100.0 + self._evince_model.props.scale = zoom_spin.props.value / 100.0 finally: - self._view_notify_zoom_handler = self._evince_view.connect( - 'notify::zoom', self._view_notify_zoom_cb) + self._view_notify_zoom_handler = self._evince_model.connect( + 'notify::scale', self._view_notify_zoom_cb) - def _view_notify_zoom_cb(self, evince_view, pspec): - self._zoom_spin.disconnect(self._zoom_spin_notify_value_handler) - try: - self._zoom_spin.props.value = round(evince_view.props.zoom * 100.0) - finally: - self._zoom_spin_notify_value_handler = self._zoom_spin.connect( - 'notify::value', self._zoom_spin_notify_value_cb) - - def _view_notify_scale_cb(self, evince_model, pspec): + def _view_notify_zoom_cb(self, evince_model, pspec): self._zoom_spin.disconnect(self._zoom_spin_notify_value_handler) try: self._zoom_spin.props.value = round(evince_model.props.scale * 100.0) finally: self._zoom_spin_notify_value_handler = self._zoom_spin.connect( - 'notify::value', self._zoom_spin_notify_value_cb) + 'notify::value', self._zoom_spin_notify_value_cb) def zoom_in(self): - if hasattr(self._evince_view.props, 'sizing_mode'): - self._evince_view.props.sizing_mode = evince.SIZING_FREE - if hasattr(self._evince_model.props, 'sizing-mode'): - self._evince_model.set_property('sizing-mode', evince.SIZING_FREE) + self._evince_model.props.sizing_mode = evince.SIZING_FREE self._evince_view.zoom_in() self._update_zoom_buttons() @@ -316,10 +285,7 @@ class ViewToolbar(gtk.Toolbar): self.zoom_in() def zoom_out(self): - if hasattr(self._evince_view.props, 'sizing_mode'): - self._evince_view.props.sizing_mode = evince.SIZING_FREE - if hasattr(self._evince_model.props, 'sizing-mode'): - self._evince_model.set_property('sizing-mode', evince.SIZING_FREE) + self._evince_model.props.sizing_mode = evince.SIZING_FREE self._evince_view.zoom_out() self._update_zoom_buttons() @@ -327,11 +293,7 @@ class ViewToolbar(gtk.Toolbar): self.zoom_out() def zoom_to_width(self): - if hasattr(self._evince_view.props, 'sizing_mode'): - self._evince_view.props.sizing_mode = evince.SIZING_FIT_WIDTH - if hasattr(self._evince_model.props, 'sizing-mode'): - self._evince_model.set_property('sizing-mode', - evince.SIZING_FIT_WIDTH) + self._evince_model.props.sizing_mode = evince.SIZING_FIT_WIDTH self.emit('needs-update-size') self._update_zoom_buttons() @@ -343,23 +305,13 @@ class ViewToolbar(gtk.Toolbar): self._zoom_out.props.sensitive = self._evince_view.can_zoom_out() def _zoom_to_fit_menu_item_activate_cb(self, menu_item): - if hasattr(self._evince_view.props, 'sizing_mode'): #XXX - self._evince_view.props.sizing_mode = evince.SIZING_BEST_FIT - if hasattr(self._evince_model.props, 'sizing-mode'): - self._evince_model.set_property('sizing-mode', - evince.SIZING_BEST_FIT) + self._evince_model.props.sizing_mode = evince.SIZING_BEST_FIT self.emit('needs-update-size') self._update_zoom_buttons() def _actual_size_menu_item_activate_cb(self, menu_item): - if hasattr(self._evince_view.props, 'sizing_mode'): - self._evince_view.props.sizing_mode = evince.SIZING_FREE - if hasattr(self._evince_model.props, 'sizing-mode'): - self._evince_model.set_property('sizing-mode', evince.SIZING_FREE) - if _EVINCE_2_80: - self._evince_model.props.scale = 1.0 - else: - self._evince_view.props.zoom = 1.0 + self._evince_model.props.sizing_mode = evince.SIZING_FREE + self._evince_model.props.scale = 1.0 self._update_zoom_buttons() def _fullscreen_cb(self, button): |