Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOLPC Developer <olpc@olpcdev.localdomain>2007-10-25 18:49:16 (GMT)
committer OLPC Developer <olpc@olpcdev.localdomain>2007-10-25 18:49:16 (GMT)
commit25e49e611c75c71cb39e0db7757600b059a9fdfe (patch)
tree9dc9542ba5d0d80e33d330ff8e071b42ef997f2d
parent6afb0595c76fa1b05b46b89a6e05aec4e63749fa (diff)
Fix for #4454
-rw-r--r--NEWS3
-rw-r--r--readactivity.py44
2 files changed, 29 insertions, 18 deletions
diff --git a/NEWS b/NEWS
index 3c6d6f8..233947d 100644
--- a/NEWS
+++ b/NEWS
@@ -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)
+