diff options
author | OLPC Developer <olpc@olpcdev.localdomain> | 2007-10-25 18:49:16 (GMT) |
---|---|---|
committer | OLPC Developer <olpc@olpcdev.localdomain> | 2007-10-25 18:49:16 (GMT) |
commit | 25e49e611c75c71cb39e0db7757600b059a9fdfe (patch) | |
tree | 9dc9542ba5d0d80e33d330ff8e071b42ef997f2d | |
parent | 6afb0595c76fa1b05b46b89a6e05aec4e63749fa (diff) |
Fix for #4454
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | readactivity.py | 44 |
2 files changed, 29 insertions, 18 deletions
@@ -1,3 +1,6 @@ +* #4454: Added a broad try..except Exception: to write_file() to allow read to + close if write_file has an error. + 34 * Reverse the zoom buttons so they're in the usual -/+ order found everywhere. diff --git a/readactivity.py b/readactivity.py index 03e8148..fd71a23 100644 --- a/readactivity.py +++ b/readactivity.py @@ -53,6 +53,7 @@ class ReadActivity(activity.Activity): self._fileserver = None self.connect('key-press-event', self._key_press_event_cb) + self.connect('key-release-event', self._key_release_event_cb) logging.debug('Starting read...') @@ -172,25 +173,27 @@ class ReadActivity(activity.Activity): def write_file(self, file_path): """We only save meta data, not the document itself. current page, view settings, search text.""" - - self.metadata['Read_current_page'] = \ - str(self._document.get_page_cache().get_current_page()) - - self.metadata['Read_zoom'] = str(self._view.props.zoom) - - if self._view.props.sizing_mode == evince.SIZING_BEST_FIT: - self.metadata['Read_sizing_mode'] = "best-fit" - elif self._view.props.sizing_mode == evince.SIZING_FREE: - self.metadata['Read_sizing_mode'] = "free" - elif self._view.props.sizing_mode == evince.SIZING_FIT_WIDTH: - self.metadata['Read_sizing_mode'] = "fit-width" - else: - logging.error("Don't know how to save sizing_mode state '%s'" % - self._view.props.sizing_mode) - self.metadata['Read_sizing_mode'] = "fit-width" + try: + self.metadata['Read_current_page'] = \ + str(self._document.get_page_cache().get_current_page()) + + self.metadata['Read_zoom'] = str(self._view.props.zoom) + + if self._view.props.sizing_mode == evince.SIZING_BEST_FIT: + self.metadata['Read_sizing_mode'] = "best-fit" + elif self._view.props.sizing_mode == evince.SIZING_FREE: + self.metadata['Read_sizing_mode'] = "free" + elif self._view.props.sizing_mode == evince.SIZING_FIT_WIDTH: + self.metadata['Read_sizing_mode'] = "fit-width" + else: + logging.error("Don't know how to save sizing_mode state '%s'" % + self._view.props.sizing_mode) + self.metadata['Read_sizing_mode'] = "fit-width" + + self.metadata['Read_search'] = self._edit_toolbar._search_entry.props.text + except Exception, e: + logging.error('write_file(): %s', e) - self.metadata['Read_search'] = self._edit_toolbar._search_entry.props.text - def _download_result_cb(self, getter, tempfile, suggested_name, buddy): del self._tried_buddies logging.debug("Got document %s (%s) from %s (%s)" % (tempfile, suggested_name, buddy.props.nick, buddy.props.ip4_address)) @@ -299,6 +302,11 @@ class ReadActivity(activity.Activity): def _key_press_event_cb(self, widget, event): keyname = gtk.gdk.keyval_name(event.keyval) + logging.debug("Keyname Press: %s, time: %s", keyname, event.time) if keyname == 'c' and event.state & gtk.gdk.CONTROL_MASK: self._view.copy() + def _key_release_event_cb(self, widget, event): + keyname = gtk.gdk.keyval_name(event.keyval) + logging.debug("Keyname Release: %s, time: %s", keyname, event.time) + |