Skip to content

Commit d499d8e

Browse files
Pesastenzek
authored andcommitted
Qt: Avoid a full reset when toggling show cover titles / localized titles
1 parent 6765b2f commit d499d8e

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/duckstation-qt/gamelistwidget.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,19 @@ void GameListModel::setShowLocalizedTitles(bool enabled)
152152
{
153153
m_show_localized_titles = enabled;
154154

155-
emit dataChanged(index(0, Column_Title), index(rowCount() - 1, Column_Title), {Qt::DisplayRole});
155+
emit dataChanged(index(0, Column_Title), index(rowCount() - 1, Column_Title), {Qt::DisplayRole, Qt::ToolTipRole});
156+
if (m_show_titles_for_covers)
157+
emit dataChanged(index(0, Column_Cover), index(rowCount() - 1, Column_Cover), {Qt::DisplayRole});
156158
// emit cover changed as well since the autogenerated covers will differ
157159
refreshCovers();
158160
}
159161

162+
void GameListModel::setShowCoverTitles(bool enabled)
163+
{
164+
m_show_titles_for_covers = enabled;
165+
emit dataChanged(index(0, Column_Cover), index(rowCount() - 1, Column_Cover), {Qt::DisplayRole});
166+
}
167+
160168
void GameListModel::setShowGameIcons(bool enabled)
161169
{
162170
m_show_game_icons = enabled;
@@ -244,7 +252,7 @@ void GameListModel::updateCoverScale()
244252
void GameListModel::refreshCovers()
245253
{
246254
m_cover_pixmap_cache.Clear();
247-
emit dataChanged(index(0, Column_Cover), index(rowCount() - 1, Column_Cover), {Qt::DisplayRole});
255+
emit dataChanged(index(0, Column_Cover), index(rowCount() - 1, Column_Cover), {Qt::DecorationRole});
248256
}
249257

250258
void GameListModel::updateCacheSize(int num_rows, int num_columns)
@@ -1598,8 +1606,6 @@ void GameListWidget::setShowLocalizedTitles(bool enabled)
15981606
Host::SetBaseBoolSettingValue("UI", "GameListShowLocalizedTitles", enabled);
15991607
Host::CommitBaseSettingChanges();
16001608
m_model->setShowLocalizedTitles(enabled);
1601-
if (isShowingGameGrid())
1602-
m_model->refresh();
16031609
}
16041610

16051611
void GameListWidget::setShowGameIcons(bool enabled)
@@ -1621,8 +1627,6 @@ void GameListWidget::setShowCoverTitles(bool enabled)
16211627
Host::CommitBaseSettingChanges();
16221628
m_model->setShowCoverTitles(enabled);
16231629
m_grid_view->updateLayout();
1624-
if (isShowingGameGrid())
1625-
m_model->refresh();
16261630
}
16271631

16281632
void GameListWidget::updateView(bool grid_view)

src/duckstation-qt/gamelistwidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class GameListModel final : public QAbstractTableModel
9191
void setShowLocalizedTitles(bool enabled);
9292

9393
bool getShowCoverTitles() const { return m_show_titles_for_covers; }
94-
void setShowCoverTitles(bool enabled) { m_show_titles_for_covers = enabled; }
94+
void setShowCoverTitles(bool enabled);
9595

9696
float getIconScale() const { return m_icon_scale; }
9797
void setIconScale(float scale);

0 commit comments

Comments
 (0)