Don't display an empty custom column group box when all custom columns are deselected in Look & feel / Edit metadata

This commit is contained in:
Charles Haley 2024-03-17 11:10:08 +00:00
parent cfc14e774f
commit d674a8e456
2 changed files with 9 additions and 3 deletions

View File

@ -874,6 +874,11 @@ def get_field_list(db, use_defaults=False, pref_data_override=None):
return [(k,v) for k,v in result.items()] return [(k,v) for k,v in result.items()]
def get_custom_columns_to_display_in_editor(db):
return list([k[0] for k in
get_field_list(db, use_defaults=db.prefs['edit_metadata_ignore_display_order']) if k[1]])
def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, parent=None): def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, parent=None):
def widget_factory(typ, key): def widget_factory(typ, key):
if bulk: if bulk:
@ -886,7 +891,7 @@ def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, pa
fm = db.field_metadata fm = db.field_metadata
# Get list of all non-composite custom fields. We must make widgets for these # Get list of all non-composite custom fields. We must make widgets for these
cols = [k[0] for k in get_field_list(db, use_defaults=db.prefs['edit_metadata_ignore_display_order']) if k[1]] cols = get_custom_columns_to_display_in_editor(db)
# This deals with the historical behavior where comments fields go to the # 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 # bottom, starting on the left hand side. If a comment field is moved to
# somewhere else then it isn't moved to either side. # somewhere else then it isn't moved to either side.

View File

@ -19,7 +19,8 @@ from calibre.constants import ismacos
from calibre.ebooks.metadata import authors_to_string, string_to_authors from calibre.ebooks.metadata import authors_to_string, string_to_authors
from calibre.ebooks.metadata.book.base import Metadata from calibre.ebooks.metadata.book.base import Metadata
from calibre.gui2 import error_dialog, gprefs, pixmap_to_data from calibre.gui2 import error_dialog, gprefs, pixmap_to_data
from calibre.gui2.custom_column_widgets import Comments, populate_metadata_page from calibre.gui2.custom_column_widgets import (
Comments, populate_metadata_page, get_custom_columns_to_display_in_editor)
from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.confirm_delete import confirm
from calibre.gui2.metadata.basic_widgets import ( from calibre.gui2.metadata.basic_widgets import (
AuthorsEdit, AuthorSortEdit, BuddyLabel, CommentsEdit, Cover, DateEdit, AuthorsEdit, AuthorSortEdit, BuddyLabel, CommentsEdit, Cover, DateEdit,
@ -121,7 +122,7 @@ class MetadataSingleDialogBase(QDialog):
self.create_basic_metadata_widgets() self.create_basic_metadata_widgets()
if len(self.db.custom_column_label_map): if len(get_custom_columns_to_display_in_editor(self.db)):
self.create_custom_metadata_widgets() self.create_custom_metadata_widgets()
self.comments_edit_state_at_apply = {self.comments:None} self.comments_edit_state_at_apply = {self.comments:None}