From 59a52e927a80a502a63e6a2d482685ffd1e86d59 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 9 May 2009 10:00:15 -0700 Subject: [PATCH 1/2] Add an option to viewer preferences, to remeber last used window size. Fixes #2406 (set default ebook viewer window size?) --- src/calibre/gui2/viewer/config.ui | 158 +++++++++++++----------- src/calibre/gui2/viewer/documentview.py | 4 + src/calibre/gui2/viewer/main.py | 18 ++- 3 files changed, 104 insertions(+), 76 deletions(-) diff --git a/src/calibre/gui2/viewer/config.ui b/src/calibre/gui2/viewer/config.ui index 5aa85f4834..c317bb3411 100644 --- a/src/calibre/gui2/viewer/config.ui +++ b/src/calibre/gui2/viewer/config.ui @@ -1,7 +1,8 @@ - + + Dialog - - + + 0 0 @@ -9,150 +10,157 @@ 574 - + Configure Ebook viewer - - + + :/images/config.svg:/images/config.svg - - - - + + + + &Font options - - - - - - + + + + + + Se&rif family: - + serif_family - - + + - - - + + + &Sans family: - + sans_family - - + + - - - + + + &Monospace family: - + mono_family - - + + - - - - - + + + + + &Default font size: - + default_font_size - - - + + + px - + 8 - + 40 - - - + + + Monospace &font size: - + mono_font_size - - - + + + px - + 8 - + 50 - - - + + + S&tandard font: - + standard_font - - + + - + Serif - + Sans-serif - + Monospace + + + + Remember last used &window size + + + - - - + + + &User stylesheet - - - + + + @@ -160,12 +168,12 @@ - - - + + + Qt::Horizontal - + QDialogButtonBox::Cancel|QDialogButtonBox::Ok @@ -173,7 +181,7 @@ - + @@ -182,11 +190,11 @@ Dialog accept() - + 248 254 - + 157 274 @@ -198,11 +206,11 @@ Dialog reject() - + 316 260 - + 286 274 diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 89fc7824e1..3aa399380c 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -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) diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index b79b5518cf..962e6644ec 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -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(): From 5056252bb9c9ac0ecab20d2e0f4ac7e65033555f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 9 May 2009 10:07:27 -0700 Subject: [PATCH 2/2] ... --- src/calibre/gui2/dialogs/config.ui | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/dialogs/config.ui b/src/calibre/gui2/dialogs/config.ui index bdf9642d3e..b7d66f9d25 100644 --- a/src/calibre/gui2/dialogs/config.ui +++ b/src/calibre/gui2/dialogs/config.ui @@ -220,7 +220,10 @@ - Output Format: + Preferred &output format: + + + output_format