diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-09-22 17:14:40 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-09-22 17:14:40 (GMT) |
commit | cc84ef1a82edb0808cf64492bd5f711368dc71d8 (patch) | |
tree | 1ec7db15011717adb5de8d0b8ded598ef22abc64 | |
parent | 30853045676b8ad1e54d667d80324e7ab274c6c0 (diff) |
#3626, #3462: Do sane things with invalid input in the page number entry box.
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | readtoolbar.py | 21 |
2 files changed, 23 insertions, 1 deletions
@@ -1,3 +1,6 @@ +* #3626, #3462: Do sane things with invalid input in the page number entry + box. (tomeu) + 31 * Update spanish translation diff --git a/readtoolbar.py b/readtoolbar.py index dd9b90a..5351863 100644 --- a/readtoolbar.py +++ b/readtoolbar.py @@ -16,6 +16,7 @@ import logging from gettext import gettext as _ +import re import pango import gobject @@ -119,6 +120,8 @@ class ReadToolbar(gtk.Toolbar): self._num_page_entry = gtk.Entry() self._num_page_entry.set_text('0') self._num_page_entry.set_alignment(1) + self._num_page_entry.connect('insert-text', + self._num_page_entry_insert_text_cb) self._num_page_entry.connect('activate', self._num_page_entry_activate_cb) @@ -152,9 +155,25 @@ class ReadToolbar(gtk.Toolbar): page_cache.connect('page-changed', self._page_changed_cb) self._update_nav_buttons() + def _num_page_entry_insert_text_cb(self, entry, text, length, position): + if not re.match('[0-9]', text): + entry.emit_stop_by_name('insert-text') + return True + return False + def _num_page_entry_activate_cb(self, entry): - page = int(entry.props.text) - 1 + if entry.props.text: + page = int(entry.props.text) - 1 + else: + page = 0 + + if page >= self._document.get_n_pages(): + page = self._document.get_n_pages() - 1 + elif page < 0: + page = 0 + self._document.get_page_cache().set_current_page(page) + entry.props.text = str(page + 1) def _go_back_cb(self, button): self._evince_view.previous_page() |