diff --git a/src/calibre/gui2/metadata/single.py b/src/calibre/gui2/metadata/single.py index 07e1ab3ab8..c0f84ac198 100644 --- a/src/calibre/gui2/metadata/single.py +++ b/src/calibre/gui2/metadata/single.py @@ -124,6 +124,7 @@ class MetadataSingleDialogBase(QDialog): self.restoreGeometry(bytes(geom)) else: self.resize(self.sizeHint()) + self.restore_widget_settings() # }}} def sizeHint(self): @@ -377,6 +378,12 @@ class MetadataSingleDialogBase(QDialog): def do_layout(self): raise NotImplementedError() + def save_widget_settings(self): + pass + + def restore_widget_settings(self): + pass + def data_changed(self): self.was_data_edited = True @@ -657,6 +664,7 @@ class MetadataSingleDialogBase(QDialog): def save_state(self): try: gprefs['metasingle_window_geometry3'] = bytearray(self.saveGeometry()) + self.save_widget_settings() except: # Weird failure, see https://bugs.launchpad.net/bugs/995271 import traceback @@ -879,6 +887,14 @@ class MetadataSingleDialog(MetadataSingleDialogBase): # {{{ self.set_custom_metadata_tab_order() + def save_widget_settings(self): + gprefs['basic_metadata_widget_splitter_state'] = bytearray(self.splitter.saveState()) + + def restore_widget_settings(self): + s = gprefs.get('basic_metadata_widget_splitter_state') + if s is not None: + self.splitter.restoreState(s) + # }}}