Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo 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)
commit876fde15f4f3a2e8cc42c68afb920015ed9867f3 (patch)
treed06ea1b86ee7113e90a3e4fc82dfbbe66eadf4b7
parentb77658247204d1ef31da4b3bc20c58cc3ad5c2a3 (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.py15
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):