From e038a1d35504d669a3ad869ed8cbcbb812e2644c Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 14 Sep 2025 12:52:10 +1000 Subject: [PATCH] Qt: Fix some size values truncated in game list --- src/duckstation-qt/gamelistwidget.cpp | 12 ++++++++++-- src/duckstation-qt/gamelistwidget.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index 7d31d60a1..02cdebe1f 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -1778,7 +1778,7 @@ void GameListWidget::onIconSizeChanged(int size) { // update size of rows m_model->updateRowHeight(m_list_view); - m_list_view->setFixedColumnWidth(m_list_view->fontMetrics(), GameListModel::Column_Icon, + m_list_view->setFixedColumnWidth(m_list_view->fontMetricsForHorizontalHeader(), GameListModel::Column_Icon, m_model->getIconColumnWidth()); m_list_view->verticalHeader()->setDefaultSectionSize(m_model->getRowHeight()); onScaleChanged(); @@ -1882,6 +1882,14 @@ void GameListListView::wheelEvent(QWheelEvent* e) QTableView::wheelEvent(e); } +QFontMetrics GameListListView::fontMetricsForHorizontalHeader() const +{ + // https://github.com/qt/qtbase/blob/9cc32c2490813b81ce36fc97f959078bf5c2fbf5/src/widgets/itemviews/qheaderview.cpp#L3148 + QFont font = horizontalHeader()->font(); + font.setBold(true); + return QFontMetrics(font); +} + void GameListListView::setFixedColumnWidth(int column, int width) { horizontalHeader()->setSectionResizeMode(column, QHeaderView::Fixed); @@ -1900,7 +1908,7 @@ void GameListListView::setFixedColumnWidth(const QFontMetrics& fm, int column, i void GameListListView::setFixedColumnWidths() { - const QFontMetrics fm(fontMetrics()); + const QFontMetrics fm = fontMetricsForHorizontalHeader(); const auto width_for = [&fm](const QString& text) { return fm.size(0, text).width(); }; setFixedColumnWidth(fm, GameListModel::Column_Serial, width_for(QStringLiteral("SWWW-00000"))); diff --git a/src/duckstation-qt/gamelistwidget.h b/src/duckstation-qt/gamelistwidget.h index f0686e226..9255ce6d8 100644 --- a/src/duckstation-qt/gamelistwidget.h +++ b/src/duckstation-qt/gamelistwidget.h @@ -174,6 +174,7 @@ public: GameListListView(GameListModel* model, GameListSortModel* sort_model, QWidget* parent); ~GameListListView() override; + QFontMetrics fontMetricsForHorizontalHeader() const; void setFixedColumnWidth(const QFontMetrics& fm, int column, int str_width); void setAndSaveColumnHidden(int column, bool hidden);