diff --git a/src/calibre/gui2/convert/bulk.py b/src/calibre/gui2/convert/bulk.py index 3a65a4617e..213f23ced2 100644 --- a/src/calibre/gui2/convert/bulk.py +++ b/src/calibre/gui2/convert/bulk.py @@ -8,8 +8,8 @@ import shutil from PyQt4.Qt import QString, SIGNAL -from calibre.gui2.convert.single import Config, sort_formats_by_preference, \ - GroupModel +from calibre.gui2.convert.single import (Config, sort_formats_by_preference, + GroupModel, gprefs) from calibre.customize.ui import available_output_formats from calibre.gui2 import ResizableDialog from calibre.gui2.convert.look_and_feel import LookAndFeelWidget @@ -62,6 +62,9 @@ class BulkConfig(Config): 'settings.')) o.setChecked(False) + geom = gprefs.get('convert_bulk_dialog_geom', None) + if geom: + self.restoreGeometry(geom) def setup_pipeline(self, *args): oidx = self.groups.currentIndex().row() @@ -139,3 +142,9 @@ class BulkConfig(Config): self._recommendations = recs ResizableDialog.accept(self) + def done(self, r): + if self.isVisible(): + gprefs['convert_bulk_dialog_geom'] = \ + bytearray(self.saveGeometry()) + return ResizableDialog.done(self, r) + diff --git a/src/calibre/gui2/convert/single.py b/src/calibre/gui2/convert/single.py index 4d13ce371b..332dc4ae92 100644 --- a/src/calibre/gui2/convert/single.py +++ b/src/calibre/gui2/convert/single.py @@ -10,7 +10,7 @@ import cPickle, shutil from PyQt4.Qt import QString, SIGNAL, QAbstractListModel, Qt, QVariant, QFont -from calibre.gui2 import ResizableDialog, NONE +from calibre.gui2 import ResizableDialog, NONE, gprefs from calibre.ebooks.conversion.config import (GuiRecommendations, save_specifics, load_specifics) from calibre.gui2.convert.single_ui import Ui_Dialog @@ -146,6 +146,9 @@ class Config(ResizableDialog, Ui_Dialog): rb = self.buttonBox.button(self.buttonBox.RestoreDefaults) self.connect(rb, SIGNAL('clicked()'), self.restore_defaults) self.groups.setMouseTracking(True) + geom = gprefs.get('convert_single_dialog_geom', None) + if geom: + self.restoreGeometry(geom) def restore_defaults(self): delete_specifics(self.db, self.book_id) @@ -263,6 +266,12 @@ class Config(ResizableDialog, Ui_Dialog): self.break_cycles() ResizableDialog.reject(self) + def done(self, r): + if self.isVisible(): + gprefs['convert_single_dialog_geom'] = \ + bytearray(self.saveGeometry()) + return ResizableDialog.done(self, r) + def break_cycles(self): for i in range(self.stack.count()): w = self.stack.widget(i)