diff options
author | Gonzalo Odiard <godiard@gmail.com> | 2013-11-08 14:35:36 (GMT) |
---|---|---|
committer | Manuel QuiƱones <manuel.por.aca@gmail.com> | 2014-01-20 12:41:36 (GMT) |
commit | 876fde15f4f3a2e8cc42c68afb920015ed9867f3 (patch) | |
tree | d06ea1b86ee7113e90a3e4fc82dfbbe66eadf4b7 | |
parent | b77658247204d1ef31da4b3bc20c58cc3ad5c2a3 (diff) |
Delay Evince import until is needed to improve activity startup time
This change improve startup time in a XO-1 from 31 segs to 18 segs.
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
-rw-r--r-- | pdfviewer.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/pdfviewer.py b/pdfviewer.py index ce0244c..7f2838f 100644 --- a/pdfviewer.py +++ b/pdfviewer.py @@ -17,14 +17,11 @@ import os import logging import tempfile -import threading from gettext import gettext as _ from gi.repository import GObject from gi.repository import Gtk from gi.repository import GLib -from gi.repository import EvinceDocument -from gi.repository import EvinceView from gi.repository import WebKit from sugar3.graphics.toolbarbox import ToolbarBox @@ -56,6 +53,10 @@ class EvinceViewer(Gtk.Overlay): self._uri = uri + # delay Evince import until is needed to improve activity startup time + from gi.repository import EvinceDocument + from gi.repository import EvinceView + # Create Evince objects to handle the PDF in the URI: EvinceDocument.init() self._doc = EvinceDocument.Document.factory_get_document(uri) @@ -64,6 +65,8 @@ class EvinceViewer(Gtk.Overlay): self._model.set_document(self._doc) self._view.set_model(self._model) + self._EVINCE_MODE_FREE = EvinceView.SizingMode.FREE + self._view.connect('external-link', self.__handle_link_cb) self._model.connect('page-changed', self.__page_changed_cb) @@ -173,15 +176,15 @@ class EvinceViewer(Gtk.Overlay): current_page < self._doc.get_n_pages() - 1 def zoom_original(self): - self._model.props.sizing_mode = EvinceView.SizingMode.FREE + self._model.props.sizing_mode = self._EVINCE_MODE_FREE self._model.props.scale = 1.0 def zoom_in(self): - self._model.props.sizing_mode = EvinceView.SizingMode.FREE + self._model.props.sizing_mode = self._EVINCE_MODE_FREE self._view.zoom_in() def zoom_out(self): - self._model.props.sizing_mode = EvinceView.SizingMode.FREE + self._model.props.sizing_mode = self._EVINCE_MODE_FREE self._view.zoom_out() def get_pdf_title(self): |