diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py
index 36a035cd94..cf4252e9ed 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.py
+++ b/src/calibre/gui2/dialogs/metadata_bulk.py
@@ -15,7 +15,7 @@ from calibre.ebooks.metadata import string_to_authors, authors_to_string
from calibre.ebooks.metadata.book.base import composite_formatter
from calibre.ebooks.metadata.meta import get_metadata
from calibre.gui2.custom_column_widgets import populate_metadata_page
-from calibre.gui2 import error_dialog, ResizableDialog, UNDEFINED_QDATE
+from calibre.gui2 import error_dialog, ResizableDialog, UNDEFINED_QDATE, gprefs
from calibre.gui2.progress_indicator import ProgressIndicator
from calibre.utils.config import dynamic, JSONConfig
from calibre.utils.titlecase import titlecase
@@ -321,8 +321,15 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
'This operation cannot be canceled or undone'))
self.do_again = False
self.central_widget.setCurrentIndex(tab)
+ geom = gprefs.get('bulk_metadata_window_geometry', None)
+ if geom is not None:
+ self.restoreGeometry(bytes(geom))
self.exec_()
+ def save_state(self, *args):
+ gprefs['bulk_metadata_window_geometry'] = \
+ bytearray(self.saveGeometry())
+
def do_apply_pubdate(self, *args):
self.apply_pubdate.setChecked(True)
@@ -790,7 +797,12 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
self.series_start_number.setEnabled(False)
self.series_start_number.setValue(1)
+ def reject(self):
+ self.save_state()
+ ResizableDialog.reject(self)
+
def accept(self):
+ self.save_state()
if len(self.ids) < 1:
return QDialog.accept(self)
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index 481a485bc2..163d49b328 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -6,8 +6,8 @@
0
0
- 850
- 700
+ 962
+ 727
@@ -44,8 +44,8 @@
0
0
- 842
- 639
+ 954
+ 666
@@ -996,8 +996,8 @@ not multiple and the destination field is multiple
0
0
- 826
- 323
+ 197
+ 60