diff --git a/src/calibre/gui2/dialogs/config.py b/src/calibre/gui2/dialogs/config.py index 8553f1c875..8b1e61f546 100644 --- a/src/calibre/gui2/dialogs/config.py +++ b/src/calibre/gui2/dialogs/config.py @@ -391,13 +391,6 @@ class ConfigDialog(QDialog, Ui_Dialog): icons = config['toolbar_icon_size'] self.toolbar_button_size.setCurrentIndex(0 if icons == self.ICON_SIZES[0] else 1 if icons == self.ICON_SIZES[1] else 2) self.show_toolbar_text.setChecked(config['show_text_in_toolbar']) - - output_formats = sorted(available_output_formats()) - output_formats.remove('oeb') - for f in output_formats: - self.output_format.addItem(f) - default_index = self.output_format.findText(prefs['output_format']) - self.output_format.setCurrentIndex(default_index if default_index != -1 else 0) output_formats = sorted(available_output_formats()) output_formats.remove('oeb') 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 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 1b3b66ca92..3119443c8a 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 a3db44d026..a5651397d0 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -20,7 +20,7 @@ from calibre.gui2 import Application, ORG_NAME, APP_UID, choose_files, \ from calibre.ebooks.oeb.iterator import EbookIterator from calibre.ebooks import DRMError from calibre.constants import islinux -from calibre.utils.config import Config, ConfigProxy, StringConfig +from calibre.utils.config import Config, StringConfig, dynamic from calibre.gui2.library import SearchBox from calibre.ebooks.metadata import MetaInformation from calibre.customize.ui import available_input_formats @@ -598,29 +598,21 @@ 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 closeEvent(self, e): - self.write_settings() + def write_settings(self): + dynamic.set('viewer_window_geometry', self.saveGeometry()) def read_settings(self): - geometry = settings['viewer_window_geometry'] - if geometry is not None: - self.restoreGeometry(geometry) - - def write_settings(self): - settings.set('viewer_window_geometry', self.saveGeometry()) + c = config().parse() + wg = dynamic['viewer_window_geometry'] + if wg is not None and c.remember_window_size: + self.restoreGeometry(wg) -def _settings(): - c = Config('viewer_gui', 'preferences for the calibre viewer GUI') - c.add_opt('viewer_window_geometry', default=None, - help=_('Viewer window geometry')) # value QVariant.toByteArray - return ConfigProxy(c) - -settings = _settings() def config(defaults=None): @@ -633,6 +625,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():