diff --git a/src/calibre/gui2/viewer/config.ui b/src/calibre/gui2/viewer/config.ui
index 09c38fc908..4066daada2 100644
--- a/src/calibre/gui2/viewer/config.ui
+++ b/src/calibre/gui2/viewer/config.ui
@@ -171,6 +171,13 @@
+ -
+
+
+ Remember the ¤t page when quitting
+
+
+
-
diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py
index 8ce0b46a6d..f5d986e757 100644
--- a/src/calibre/gui2/viewer/documentview.py
+++ b/src/calibre/gui2/viewer/documentview.py
@@ -50,6 +50,8 @@ def config(defaults=None):
c.add_opt('hyphenate', default=False, help=_('Hyphenate text'))
c.add_opt('hyphenate_default_lang', default='en',
help=_('Default language for hyphenation rules'))
+ c.add_opt('remember_current_page', default=True,
+ help=_('Save the current position in the documentwhen quitting'))
fonts = c.add_group('FONTS', _('Font options'))
fonts('serif_family', default='Times New Roman' if iswindows else 'Liberation Serif',
@@ -72,6 +74,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
opts = config().parse()
self.opt_remember_window_size.setChecked(opts.remember_window_size)
+ self.opt_remember_current_page.setChecked(opts.remember_current_page)
self.serif_family.setCurrentFont(QFont(opts.serif_family))
self.sans_family.setCurrentFont(QFont(opts.sans_family))
self.mono_family.setCurrentFont(QFont(opts.mono_family))
@@ -118,6 +121,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
c.set('fit_images', self.opt_fit_images.isChecked())
c.set('max_view_width', int(self.max_view_width.value()))
c.set('hyphenate', self.hyphenate.isChecked())
+ c.set('remember_current_page', self.opt_remember_current_page.isChecked())
idx = self.hyphenate_default_lang.currentIndex()
c.set('hyphenate_default_lang',
str(self.hyphenate_default_lang.itemData(idx).toString()))
diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py
index 96fe758ca6..f7b8a8d401 100644
--- a/src/calibre/gui2/viewer/main.py
+++ b/src/calibre/gui2/viewer/main.py
@@ -328,6 +328,11 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
c = config().parse()
self.frame.setMaximumWidth(c.max_view_width)
+ def get_remember_current_page_opt(self):
+ from calibre.gui2.viewer.documentview import config
+ c = config().parse()
+ return c.remember_current_page
+
def print_book(self, preview):
Printing(self.iterator.spine, preview)
@@ -578,7 +583,8 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
current_page = None
self.existing_bookmarks = []
for bm in bookmarks:
- if bm[0] == 'calibre_current_page_bookmark':
+ if bm[0] == 'calibre_current_page_bookmark' and \
+ self.get_remember_current_page_opt():
current_page = bm
else:
self.existing_bookmarks.append(bm[0])
@@ -598,6 +604,8 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.set_bookmarks(bookmarks)
def save_current_position(self):
+ if not self.get_remember_current_page_opt():
+ return
try:
pos = self.view.bookmark()
bookmark = '%d#%s'%(self.current_index, pos)