diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index aaaa50aa59..b9825eb635 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -858,7 +858,7 @@ def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, pa wij = w.widgets[c] if label_width == 0: font_metrics = wij.fontMetrics() - colon_width = font_metrics.width(':') + colon_width = font_metrics.horizontalAdvance(':') if bulk: label_width = (font_metrics.averageCharWidth() * gprefs['edit_metadata_bulk_cc_label_length']) - colon_width diff --git a/src/calibre/gui2/pyqt6_compat.py b/src/calibre/gui2/pyqt6_compat.py index aefbf6100d..fecfb07b47 100644 --- a/src/calibre/gui2/pyqt6_compat.py +++ b/src/calibre/gui2/pyqt6_compat.py @@ -8,8 +8,8 @@ from qt.core import ( QAbstractItemView, QAction, QComboBox, QDialog, QDialogButtonBox, QDrag, - QEventLoop, QFrame, QImage, QIODevice, QLineEdit, QMenu, QMessageBox, - QModelIndex, QSinglePointEvent, Qt, QThread, QToolButton + QEventLoop, QFontMetrics, QFrame, QImage, QIODevice, QLineEdit, QMenu, + QMessageBox, QModelIndex, QSinglePointEvent, Qt, QThread, QToolButton, QPalette ) from calibre_extensions import progress_indicator @@ -53,8 +53,11 @@ QAction.menu = lambda self: progress_indicator.menu_for_action(self) QModelIndex.child = lambda self, row, column: self.model().index(row, column, self) +# Restore QFontMetrics::width +QFontMetrics.width = lambda self, text: self.horizontalAdvance(text) + # Restore enum values to various classes -for cls in (Qt, QDialog, QToolButton, QAbstractItemView, QDialogButtonBox, QFrame, QComboBox, QLineEdit, QAction, QImage, QIODevice): +for cls in (Qt, QDialog, QToolButton, QAbstractItemView, QDialogButtonBox, QFrame, QComboBox, QLineEdit, QAction, QImage, QIODevice, QPalette): for var in tuple(vars(cls).values()): m = getattr(var, '__members__', {}) for k, v in m.items():