pyqt6: port QFontMetrics::width

This commit is contained in:
Kovid Goyal 2021-11-24 13:24:56 +05:30
parent a24c16608a
commit d691d0a69a
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 7 additions and 4 deletions

View File

@ -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

View File

@ -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():