From f34b17446ce98665cb0ac78f0318d20bcf23e0af Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 28 Feb 2023 19:45:56 +0100 Subject: [PATCH 1/2] Qt: Move "Game Properties" from View to Settings --- src/duckstation-qt/mainwindow.ui | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/duckstation-qt/mainwindow.ui b/src/duckstation-qt/mainwindow.ui index 03ad4266a..cf1f8e42c 100644 --- a/src/duckstation-qt/mainwindow.ui +++ b/src/duckstation-qt/mainwindow.ui @@ -118,6 +118,7 @@ .. + @@ -216,7 +217,6 @@ - @@ -846,6 +846,10 @@ false + + + .. + Game &Properties From 6f0280afc2d3e15df7f5e56f8cc706ad29df86ae Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 28 Feb 2023 19:53:31 +0100 Subject: [PATCH 2/2] Qt: Add a context menu to the toolbar's Settings button when the game is running A new small context menu that allows to select between global settings and game settings. --- src/duckstation-qt/mainwindow.cpp | 17 +++++++++++++++++ src/duckstation-qt/mainwindow.h | 4 ++++ src/duckstation-qt/mainwindow.ui | 19 +++++++++++++++++-- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index 74389cff8..fff5d8f5f 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -1555,6 +1555,10 @@ void MainWindow::setupAdditionalUi() m_status_vps_widget->setFixedSize(125, 16); m_status_vps_widget->hide(); + m_settings_toolbar_menu = new QMenu(m_ui.toolBar); + m_settings_toolbar_menu->addAction(m_ui.actionSettings); + m_settings_toolbar_menu->addAction(m_ui.actionViewGameProperties); + m_ui.actionGridViewShowTitles->setChecked(m_game_list_widget->getShowGridCoverTitles()); updateDebugMenuVisibility(); @@ -1943,6 +1947,7 @@ void MainWindow::connectSignals() connect(m_ui.actionExit, &QAction::triggered, this, &MainWindow::close); connect(m_ui.actionFullscreen, &QAction::triggered, g_emu_thread, &EmuThread::toggleFullscreen); connect(m_ui.actionSettings, &QAction::triggered, [this]() { doSettings(); }); + connect(m_ui.actionSettings2, &QAction::triggered, this, &MainWindow::onSettingsTriggeredFromToolbar); connect(m_ui.actionGeneralSettings, &QAction::triggered, [this]() { doSettings("General"); }); connect(m_ui.actionBIOSSettings, &QAction::triggered, [this]() { doSettings("BIOS"); }); connect(m_ui.actionConsoleSettings, &QAction::triggered, [this]() { doSettings("Console"); }); @@ -2750,6 +2755,18 @@ void MainWindow::onToolsOpenDataDirectoryTriggered() QtUtils::OpenURL(this, QUrl::fromLocalFile(QString::fromStdString(EmuFolders::DataRoot))); } +void MainWindow::onSettingsTriggeredFromToolbar() +{ + if (s_system_valid) + { + m_settings_toolbar_menu->exec(QCursor::pos()); + } + else + { + doSettings(); + } +} + void MainWindow::checkForUpdates(bool display_message) { if (!AutoUpdaterDialog::isSupported()) diff --git a/src/duckstation-qt/mainwindow.h b/src/duckstation-qt/mainwindow.h index ec1aa123f..ff61056a1 100644 --- a/src/duckstation-qt/mainwindow.h +++ b/src/duckstation-qt/mainwindow.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -156,6 +157,7 @@ private Q_SLOTS: void onToolsCoverDownloaderTriggered(); void onToolsCheatManagerTriggered(); void onToolsOpenDataDirectoryTriggered(); + void onSettingsTriggeredFromToolbar(); void onGameListRefreshComplete(); void onGameListRefreshProgress(const QString& status, int current, int total); @@ -264,6 +266,8 @@ private: QLabel* m_status_vps_widget = nullptr; QLabel* m_status_resolution_widget = nullptr; + QMenu* m_settings_toolbar_menu = nullptr; + SettingsDialog* m_settings_dialog = nullptr; ControllerSettingsDialog* m_controller_settings_dialog = nullptr; diff --git a/src/duckstation-qt/mainwindow.ui b/src/duckstation-qt/mainwindow.ui index cf1f8e42c..801d72072 100644 --- a/src/duckstation-qt/mainwindow.ui +++ b/src/duckstation-qt/mainwindow.ui @@ -277,7 +277,7 @@ - + @@ -610,7 +610,22 @@ .. - &Settings... + &Settings + + + QAction::PreferencesRole + + + + + + .. + + + &Settings + + + QAction::PreferencesRole