Qt: Fix game list toolbar/view menu desync

pull/3354/head
Stenzek 2 months ago
parent 54780d4fbf
commit 6785285f31
No known key found for this signature in database

@ -511,7 +511,7 @@ void GameListWidget::showGameList()
setFocusProxy(m_table_view);
resizeTableViewColumnsToFit();
updateToolbar();
emit layoutChange();
emit layoutChanged();
}
void GameListWidget::showGameGrid()
@ -527,7 +527,7 @@ void GameListWidget::showGameGrid()
m_ui.stack->setCurrentIndex(1);
setFocusProxy(m_list_view);
updateToolbar();
emit layoutChange();
emit layoutChanged();
}
void GameListWidget::setShowCoverTitles(bool enabled)
@ -544,7 +544,7 @@ void GameListWidget::setShowCoverTitles(bool enabled)
if (isShowingGameGrid())
m_model->refresh();
updateToolbar();
emit layoutChange();
emit layoutChanged();
}
void GameListWidget::setMergeDiscSets(bool enabled)
@ -559,7 +559,7 @@ void GameListWidget::setMergeDiscSets(bool enabled)
Host::CommitBaseSettingChanges();
m_sort_model->setMergeDiscSets(enabled);
updateToolbar();
emit layoutChange();
emit layoutChanged();
}
void GameListWidget::setShowGameIcons(bool enabled)

@ -66,7 +66,7 @@ Q_SIGNALS:
void entryContextMenuRequested(const QPoint& point);
void addGameDirectoryRequested();
void layoutChange();
void layoutChanged();
private Q_SLOTS:
void onRefreshProgress(const QString& status, int current, int total, float time);

@ -1370,6 +1370,25 @@ void MainWindow::onGameListRefreshComplete()
clearProgressBar();
}
void MainWindow::onGameListLayoutChanged()
{
// re-sync with menu
{
QSignalBlocker sb(m_ui.actionGridViewShowTitles);
m_ui.actionGridViewShowTitles->setChecked(m_game_list_widget->isShowingGridCoverTitles());
}
{
QSignalBlocker sb(m_ui.actionMergeDiscSets);
m_ui.actionMergeDiscSets->setChecked(m_game_list_widget->isMergingDiscSets());
}
{
QSignalBlocker sb(m_ui.actionShowGameIcons);
m_ui.actionShowGameIcons->setChecked(m_game_list_widget->isShowingGameIcons());
}
}
void MainWindow::onGameListSelectionChanged()
{
auto lock = GameList::GetLock();
@ -1621,9 +1640,6 @@ void MainWindow::setupAdditionalUi()
m_game_list_widget = new GameListWidget(getContentParent());
m_game_list_widget->initialize();
m_ui.actionGridViewShowTitles->setChecked(m_game_list_widget->isShowingGridCoverTitles());
m_ui.actionMergeDiscSets->setChecked(m_game_list_widget->isMergingDiscSets());
m_ui.actionShowGameIcons->setChecked(m_game_list_widget->isShowingGameIcons());
if (s_use_central_widget)
{
m_ui.mainContainer = nullptr; // setCentralWidget() will delete this
@ -1663,14 +1679,13 @@ void MainWindow::setupAdditionalUi()
m_settings_toolbar_menu->addAction(m_ui.actionSettings);
m_settings_toolbar_menu->addAction(m_ui.actionViewGameProperties);
m_ui.actionGridViewShowTitles->setChecked(m_game_list_widget->isShowingGridCoverTitles());
for (u32 scale = 1; scale <= 10; scale++)
{
QAction* action = m_ui.menuWindowSize->addAction(tr("%1x Scale").arg(scale));
connect(action, &QAction::triggered, [scale]() { g_emu_thread->requestDisplaySize(scale); });
}
onGameListLayoutChanged();
updateDebugMenuVisibility();
m_shortcuts.open_file =
@ -2091,6 +2106,7 @@ void MainWindow::connectSignals()
// These need to be queued connections to stop crashing due to menus opening/closing and switching focus.
connect(m_game_list_widget, &GameListWidget::refreshProgress, this, &MainWindow::onGameListRefreshProgress);
connect(m_game_list_widget, &GameListWidget::refreshComplete, this, &MainWindow::onGameListRefreshComplete);
connect(m_game_list_widget, &GameListWidget::layoutChanged, this, &MainWindow::onGameListLayoutChanged);
connect(m_game_list_widget, &GameListWidget::selectionChanged, this, &MainWindow::onGameListSelectionChanged,
Qt::QueuedConnection);
connect(m_game_list_widget, &GameListWidget::entryActivated, this, &MainWindow::onGameListEntryActivated,

@ -196,6 +196,7 @@ private Q_SLOTS:
void onGameListRefreshComplete();
void onGameListRefreshProgress(const QString& status, int current, int total);
void onGameListLayoutChanged();
void onGameListSelectionChanged();
void onGameListEntryActivated();
void onGameListEntryContextMenuRequested(const QPoint& point);

Loading…
Cancel
Save