From 3fc563e5a35b03e7b82f67ee42c23141a7c326e3 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 14 Dec 2025 12:22:08 +1000 Subject: [PATCH] Qt: Invalidate tooltips for title changes as well Probably unnecessary since I don't think it's cached. --- src/duckstation-qt/gamelistwidget.cpp | 14 +++++++++----- src/duckstation-qt/gamelistwidget.h | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index aee39ca19..da4ca4c7b 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -520,12 +520,16 @@ void GameListModel::rowsChanged(const QList& rows) } } -Qt::ItemDataRole GameListModel::getRoleToInvalidate(int column) +QList GameListModel::getRolesToInvalidate(int column) { + QList ret; + if (column == Column_Icon || column == Column_Cover || column == Column_Region) - return Qt::DecorationRole; + ret = {Qt::DecorationRole}; else - return Qt::DisplayRole; + ret = {Qt::DisplayRole, Qt::ToolTipRole}; + + return ret; } void GameListModel::invalidateColumn(int column, bool invalidate_cache /* = true */) @@ -544,7 +548,7 @@ void GameListModel::invalidateColumn(int column, bool invalidate_cache /* = true } } - emit dataChanged(index(0, column), index(rowCount() - 1, column), {getRoleToInvalidate(column)}); + emit dataChanged(index(0, column), index(rowCount() - 1, column), getRolesToInvalidate(column)); } void GameListModel::invalidateColumnForPath(const std::string& path, int column, bool invalidate_cache /* = true */) @@ -569,7 +573,7 @@ void GameListModel::invalidateColumnForPath(const std::string& path, int column, const auto remove_entry = [this, &column](const GameList::Entry* ge, int row) { const QModelIndex mi(index(row, column)); - emit dataChanged(mi, mi, {getRoleToInvalidate(column)}); + emit dataChanged(mi, mi, getRolesToInvalidate(column)); }; if (hasTakenGameList()) diff --git a/src/duckstation-qt/gamelistwidget.h b/src/duckstation-qt/gamelistwidget.h index 80ee888a7..0d99ce21c 100644 --- a/src/duckstation-qt/gamelistwidget.h +++ b/src/duckstation-qt/gamelistwidget.h @@ -154,7 +154,7 @@ private: static void createPlaceholderImage(QImage& image, const QImage& placeholder_image, const QSize& size, float scale, const QString& title); - static Qt::ItemDataRole getRoleToInvalidate(int column); + static QList getRolesToInvalidate(int column); const QPixmap& getIconPixmapForEntry(const GameList::Entry* ge) const; const QPixmap& getFlagPixmapForEntry(const GameList::Entry* ge) const;