Qt: Fix game list toolbar/view menu desync
This commit is contained in:
parent
54780d4fbf
commit
6785285f31
|
@ -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…
Reference in New Issue