mirror of
https://github.com/stenzek/duckstation.git
synced 2025-07-22 18:10:08 +00:00
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);
|
setFocusProxy(m_table_view);
|
||||||
resizeTableViewColumnsToFit();
|
resizeTableViewColumnsToFit();
|
||||||
updateToolbar();
|
updateToolbar();
|
||||||
emit layoutChange();
|
emit layoutChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameListWidget::showGameGrid()
|
void GameListWidget::showGameGrid()
|
||||||
@ -527,7 +527,7 @@ void GameListWidget::showGameGrid()
|
|||||||
m_ui.stack->setCurrentIndex(1);
|
m_ui.stack->setCurrentIndex(1);
|
||||||
setFocusProxy(m_list_view);
|
setFocusProxy(m_list_view);
|
||||||
updateToolbar();
|
updateToolbar();
|
||||||
emit layoutChange();
|
emit layoutChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameListWidget::setShowCoverTitles(bool enabled)
|
void GameListWidget::setShowCoverTitles(bool enabled)
|
||||||
@ -544,7 +544,7 @@ void GameListWidget::setShowCoverTitles(bool enabled)
|
|||||||
if (isShowingGameGrid())
|
if (isShowingGameGrid())
|
||||||
m_model->refresh();
|
m_model->refresh();
|
||||||
updateToolbar();
|
updateToolbar();
|
||||||
emit layoutChange();
|
emit layoutChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameListWidget::setMergeDiscSets(bool enabled)
|
void GameListWidget::setMergeDiscSets(bool enabled)
|
||||||
@ -559,7 +559,7 @@ void GameListWidget::setMergeDiscSets(bool enabled)
|
|||||||
Host::CommitBaseSettingChanges();
|
Host::CommitBaseSettingChanges();
|
||||||
m_sort_model->setMergeDiscSets(enabled);
|
m_sort_model->setMergeDiscSets(enabled);
|
||||||
updateToolbar();
|
updateToolbar();
|
||||||
emit layoutChange();
|
emit layoutChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameListWidget::setShowGameIcons(bool enabled)
|
void GameListWidget::setShowGameIcons(bool enabled)
|
||||||
|
@ -66,7 +66,7 @@ Q_SIGNALS:
|
|||||||
void entryContextMenuRequested(const QPoint& point);
|
void entryContextMenuRequested(const QPoint& point);
|
||||||
|
|
||||||
void addGameDirectoryRequested();
|
void addGameDirectoryRequested();
|
||||||
void layoutChange();
|
void layoutChanged();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void onRefreshProgress(const QString& status, int current, int total, float time);
|
void onRefreshProgress(const QString& status, int current, int total, float time);
|
||||||
|
@ -1370,6 +1370,25 @@ void MainWindow::onGameListRefreshComplete()
|
|||||||
clearProgressBar();
|
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()
|
void MainWindow::onGameListSelectionChanged()
|
||||||
{
|
{
|
||||||
auto lock = GameList::GetLock();
|
auto lock = GameList::GetLock();
|
||||||
@ -1621,9 +1640,6 @@ void MainWindow::setupAdditionalUi()
|
|||||||
|
|
||||||
m_game_list_widget = new GameListWidget(getContentParent());
|
m_game_list_widget = new GameListWidget(getContentParent());
|
||||||
m_game_list_widget->initialize();
|
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)
|
if (s_use_central_widget)
|
||||||
{
|
{
|
||||||
m_ui.mainContainer = nullptr; // setCentralWidget() will delete this
|
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.actionSettings);
|
||||||
m_settings_toolbar_menu->addAction(m_ui.actionViewGameProperties);
|
m_settings_toolbar_menu->addAction(m_ui.actionViewGameProperties);
|
||||||
|
|
||||||
m_ui.actionGridViewShowTitles->setChecked(m_game_list_widget->isShowingGridCoverTitles());
|
|
||||||
|
|
||||||
for (u32 scale = 1; scale <= 10; scale++)
|
for (u32 scale = 1; scale <= 10; scale++)
|
||||||
{
|
{
|
||||||
QAction* action = m_ui.menuWindowSize->addAction(tr("%1x Scale").arg(scale));
|
QAction* action = m_ui.menuWindowSize->addAction(tr("%1x Scale").arg(scale));
|
||||||
connect(action, &QAction::triggered, [scale]() { g_emu_thread->requestDisplaySize(scale); });
|
connect(action, &QAction::triggered, [scale]() { g_emu_thread->requestDisplaySize(scale); });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onGameListLayoutChanged();
|
||||||
updateDebugMenuVisibility();
|
updateDebugMenuVisibility();
|
||||||
|
|
||||||
m_shortcuts.open_file =
|
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.
|
// 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::refreshProgress, this, &MainWindow::onGameListRefreshProgress);
|
||||||
connect(m_game_list_widget, &GameListWidget::refreshComplete, this, &MainWindow::onGameListRefreshComplete);
|
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,
|
connect(m_game_list_widget, &GameListWidget::selectionChanged, this, &MainWindow::onGameListSelectionChanged,
|
||||||
Qt::QueuedConnection);
|
Qt::QueuedConnection);
|
||||||
connect(m_game_list_widget, &GameListWidget::entryActivated, this, &MainWindow::onGameListEntryActivated,
|
connect(m_game_list_widget, &GameListWidget::entryActivated, this, &MainWindow::onGameListEntryActivated,
|
||||||
|
@ -196,6 +196,7 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void onGameListRefreshComplete();
|
void onGameListRefreshComplete();
|
||||||
void onGameListRefreshProgress(const QString& status, int current, int total);
|
void onGameListRefreshProgress(const QString& status, int current, int total);
|
||||||
|
void onGameListLayoutChanged();
|
||||||
void onGameListSelectionChanged();
|
void onGameListSelectionChanged();
|
||||||
void onGameListEntryActivated();
|
void onGameListEntryActivated();
|
||||||
void onGameListEntryContextMenuRequested(const QPoint& point);
|
void onGameListEntryContextMenuRequested(const QPoint& point);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user