Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/readactivity.py
diff options
context:
space:
mode:
Diffstat (limited to 'readactivity.py')
-rw-r--r--readactivity.py42
1 files changed, 26 insertions, 16 deletions
diff --git a/readactivity.py b/readactivity.py
index 75e847e..c876e22 100644
--- a/readactivity.py
+++ b/readactivity.py
@@ -35,6 +35,7 @@ from sugar.datastore import datastore
from sugar.graphics.objectchooser import ObjectChooser
from readtoolbar import EditToolbar, ReadToolbar, ViewToolbar
+from readsidebar import Sidebar
_HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager'
_HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager'
@@ -100,7 +101,7 @@ class ReadActivity(activity.Activity):
if hasattr(evince, 'evince_embed_init'):
# if we use evince-2.24
evince.evince_embed_init()
-
+
self._document = None
self._fileserver = None
self._object_id = handle.object_id
@@ -114,6 +115,9 @@ class ReadActivity(activity.Activity):
self._view.set_screen_dpi(_get_screen_dpi())
self._view.connect('notify::has-selection',
self._view_notify_has_selection_cb)
+
+ self._sidebar = Sidebar()
+ self._sidebar.show()
toolbox = activity.ActivityToolbox(self)
@@ -127,7 +131,7 @@ class ReadActivity(activity.Activity):
toolbox.add_toolbar(_('Edit'), self._edit_toolbar)
self._edit_toolbar.show()
- self._read_toolbar = ReadToolbar(self._view)
+ self._read_toolbar = ReadToolbar(self._view, self._sidebar)
toolbox.add_toolbar(_('Read'), self._read_toolbar)
self._read_toolbar.show()
@@ -142,15 +146,20 @@ class ReadActivity(activity.Activity):
self.set_toolbox(toolbox)
toolbox.show()
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scrolled.props.shadow_type = gtk.SHADOW_NONE
+ self._scrolled = gtk.ScrolledWindow()
+ self._scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ self._scrolled.props.shadow_type = gtk.SHADOW_NONE
- scrolled.add(self._view)
+ self._scrolled.add(self._view)
self._view.show()
-
- self.set_canvas(scrolled)
- scrolled.show()
+
+ hbox = gtk.HBox()
+ hbox.pack_start(self._sidebar, expand=False, fill=False)
+ hbox.pack_start(self._scrolled, expand=True, fill=True)
+
+ self.set_canvas(hbox)
+ self._scrolled.show()
+ hbox.show()
# Set up for idle suspend
self._idle_timer = 0
@@ -175,9 +184,9 @@ class ReadActivity(activity.Activity):
_HARDWARE_MANAGER_OBJECT_PATH)
self._service = dbus.Interface(proxy,
_HARDWARE_MANAGER_INTERFACE)
- scrolled.props.vadjustment.connect("value-changed",
+ self._scrolled.props.vadjustment.connect("value-changed",
self._user_action_cb)
- scrolled.props.hadjustment.connect("value-changed",
+ self._scrolled.props.hadjustment.connect("value-changed",
self._user_action_cb)
self.connect("focus-in-event", self._focus_in_event_cb)
self.connect("focus-out-event", self._focus_out_event_cb)
@@ -276,8 +285,9 @@ class ReadActivity(activity.Activity):
def read_file(self, file_path):
"""Load a file from the datastore on activity start."""
_logger.debug('ReadActivity.read_file: %s', file_path)
+ extension = os.path.splitext(file_path)[1]
tempfile = os.path.join(self.get_activity_root(), 'instance',
- 'tmp%i' % time.time())
+ 'tmp%i%s' % (time.time(), extension))
os.link(file_path, tempfile)
self._tempfile = tempfile
self._load_document('file://' + self._tempfile)
@@ -452,7 +462,7 @@ class ReadActivity(activity.Activity):
self._want_document = False
self._view.set_document(self._document)
self._edit_toolbar.set_document(self._document)
- self._read_toolbar.set_document(self._document)
+ self._read_toolbar.set_document(self._document, filepath)
if not self.metadata['title_set_by_user'] == '1':
info = self._document.get_info()
@@ -466,14 +476,14 @@ class ReadActivity(activity.Activity):
_logger.debug('Found sizing mode: %s', sizing_mode)
if sizing_mode == "best-fit":
self._view.props.sizing_mode = evince.SIZING_BEST_FIT
- self._view.update_view_size(self.canvas)
+ self._view.update_view_size(self._scrolled)
elif sizing_mode == "free":
self._view.props.sizing_mode = evince.SIZING_FREE
self._view.props.zoom = float(self.metadata.get('Read_zoom', '1.0'))
_logger.debug('Set zoom to %f', self._view.props.zoom)
elif sizing_mode == "fit-width":
self._view.props.sizing_mode = evince.SIZING_FIT_WIDTH
- self._view.update_view_size(self.canvas)
+ self._view.update_view_size(self._scrolled)
else:
# this may happen when we get a document from a buddy with a later
# version of Read, for example.
@@ -583,7 +593,7 @@ class ReadActivity(activity.Activity):
_logger.debug("Keyname Release: %s, time: %s", keyname, event.time)
def __view_toolbar_needs_update_size_cb(self, view_toolbar):
- self._view.update_view_size(self.canvas)
+ self._view.update_view_size(self._scrolled)
def __view_toolbar_go_fullscreen_cb(self, view_toolbar):
self.fullscreen()