mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
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:
parent
b839cc76e1
commit
59a52e927a
@ -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 &window size</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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():
|
||||
|
Loading…
x
Reference in New Issue
Block a user