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():