diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py
index 2d822e64b5..d3379c2bb8 100644
--- a/src/calibre/db/backend.py
+++ b/src/calibre/db/backend.py
@@ -564,6 +564,7 @@ class DB:
defs['cover_browser_title_template'] = '{title}'
defs['cover_browser_subtitle_field'] = 'rating'
defs['styled_columns'] = {}
+ defs['edit_metadata_ignore_display_order'] = False
# Migrate the bool tristate tweak
defs['bools_are_tristate'] = \
diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py
index f1b6e4d83f..273a6c5973 100644
--- a/src/calibre/gui2/custom_column_widgets.py
+++ b/src/calibre/gui2/custom_column_widgets.py
@@ -507,7 +507,7 @@ class Text(Base):
w.set_space_before_sep(True)
w.set_add_separator(tweaks['authors_completer_append_separator'])
w.get_editor_button().clicked.connect(self.edit)
- w.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
+ w.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.set_to_undefined = w.clear
else:
w = EditWithComplete(parent)
@@ -787,7 +787,7 @@ def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, pa
fm = db.field_metadata
# Get list of all non-composite custom fields. We must make widgets for these
- cols = [k[0] for k in get_field_list(db) if k[1]]
+ cols = [k[0] for k in get_field_list(db, use_defaults=db.prefs['edit_metadata_ignore_display_order']) if k[1]]
# This deals with the historical behavior where comments fields go to the
# bottom, starting on the left hand side. If a comment field is moved to
# somewhere else then it isn't moved to either side.
diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py
index f7240b243c..99c571253b 100644
--- a/src/calibre/gui2/preferences/look_feel.py
+++ b/src/calibre/gui2/preferences/look_feel.py
@@ -538,6 +538,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
r('edit_metadata_single_layout', gprefs,
choices=[(_('Default'), 'default'), (_('Compact Metadata'), 'alt1'),
(_('All on 1 tab'), 'alt2')])
+ r('edit_metadata_ignore_display_order', db.prefs)
self.current_font = self.initial_font = None
self.change_font_button.clicked.connect(self.change_font)
diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui
index 61c1e182d0..da900433b6 100644
--- a/src/calibre/gui2/preferences/look_feel.ui
+++ b/src/calibre/gui2/preferences/look_feel.ui
@@ -994,6 +994,19 @@ A value of zero means calculate automatically.
+ -
+
+
+ Show all columns in default order when editing metadata
+
+
+ <p>Check this box to make the edit metadata dialogs ignore the
+above specifications, showing all the columns in the default order. This is
+useful for temporarily seeing all your columns in the dialogs without losing
+the display and order specifications.</p>
+
+
+