Add an option to viewer preferences, to remeber last used window size. Fixes #2406 (set default ebook viewer window size?)

This commit is contained in:
Kovid Goyal 2009-05-09 10:00:15 -07:00
parent b839cc76e1
commit 59a52e927a
3 changed files with 104 additions and 76 deletions

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
@ -143,6 +144,13 @@
</item>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="opt_remember_window_size">
<property name="text">
<string>Remember last used &amp;window size</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">

View File

@ -53,6 +53,8 @@ def config(defaults=None):
else:
c = StringConfig(defaults, desc)
c.add_opt('remember_window_size', default=False,
help=_('Remember last used window size'))
c.add_opt('user_css', default='',
help=_('Set the user CSS stylesheet. This can be used to customize the look of all books.'))
@ -76,6 +78,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
self.setupUi(self)
opts = config().parse()
self.opt_remember_window_size.setChecked(opts.remember_window_size)
self.serif_family.setCurrentFont(QFont(opts.serif_family))
self.sans_family.setCurrentFont(QFont(opts.sans_family))
self.mono_family.setCurrentFont(QFont(opts.mono_family))
@ -94,6 +97,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
c.set('mono_font_size', self.mono_font_size.value())
c.set('standard_font', {0:'serif', 1:'sans', 2:'mono'}[self.standard_font.currentIndex()])
c.set('user_css', unicode(self.css.toPlainText()))
c.set('remember_window_size', self.opt_remember_window_size.isChecked())
return QDialog.accept(self, *args)

View File

@ -20,7 +20,7 @@ from calibre.ebooks.epub.from_any import SOURCE_FORMATS
from calibre.ebooks import DRMError
from calibre.gui2.dialogs.conversion_error import ConversionErrorDialog
from calibre.constants import islinux
from calibre.utils.config import Config, StringConfig
from calibre.utils.config import Config, StringConfig, dynamic
from calibre.gui2.library import SearchBox
from calibre.ebooks.metadata import MetaInformation
@ -198,6 +198,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.pending_reference = None
self.pending_bookmark = None
self.selected_text = None
self.read_settings()
self.history = History(self.action_back, self.action_forward)
self.metadata = Metadata(self)
self.pos = DoubleSpinBox()
@ -570,10 +571,22 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
return self
def __exit__(self, *args):
self.write_settings()
if self.iterator is not None:
self.save_current_position()
self.iterator.__exit__(*args)
def write_settings(self):
dynamic.set('viewer_window_geometry', self.saveGeometry())
def read_settings(self):
c = config().parse()
wg = dynamic['viewer_window_geometry']
if wg is not None and c.remember_window_size:
self.restoreGeometry(wg)
def config(defaults=None):
desc = _('Options to control the ebook viewer')
@ -585,6 +598,9 @@ def config(defaults=None):
c.add_opt('raise_window', ['--raise-window'], default=False,
help=_('If specified, viewer window will try to come to the '
'front when started.'))
c.add_opt('remember_window_size', default=False,
help=_('Remember last used window size'))
return c
def option_parser():