Qt: Use NonAutodismissibleMenu in more places

Use NonAutodismissibleMenu for MenuBar's Options, JIT, and
Tools->"Connect Wii Remotes" menus, as well as for the Tags menu in
GameList's context menu.

NonAutodismissibleMenu allows users to check or uncheck multiple
checkable menu items without closing the menu between selections.
This commit is contained in:
Dentomologist
2025-06-16 21:13:16 -07:00
parent 6a0d8ca3f8
commit 2fd74990b7
2 changed files with 9 additions and 4 deletions

View File

@ -66,6 +66,7 @@
#include "DolphinQt/QtUtils/DolphinFileDialog.h" #include "DolphinQt/QtUtils/DolphinFileDialog.h"
#include "DolphinQt/QtUtils/DoubleClickEventFilter.h" #include "DolphinQt/QtUtils/DoubleClickEventFilter.h"
#include "DolphinQt/QtUtils/ModalMessageBox.h" #include "DolphinQt/QtUtils/ModalMessageBox.h"
#include "DolphinQt/QtUtils/NonAutodismissibleMenu.h"
#include "DolphinQt/QtUtils/ParallelProgressDialog.h" #include "DolphinQt/QtUtils/ParallelProgressDialog.h"
#include "DolphinQt/Resources.h" #include "DolphinQt/Resources.h"
#include "DolphinQt/Settings.h" #include "DolphinQt/Settings.h"
@ -519,7 +520,8 @@ void GameList::ShowContextMenu(const QPoint&)
menu->addSeparator(); menu->addSeparator();
auto* tags_menu = menu->addMenu(tr("Tags")); auto* const tags_menu{new QtUtils::NonAutodismissibleMenu(tr("Tags"), menu)};
menu->addMenu(tags_menu);
auto path = game->GetFilePath(); auto path = game->GetFilePath();
auto game_tags = m_model.GetGameTags(path); auto game_tags = m_model.GetGameTags(path);

View File

@ -352,7 +352,8 @@ void MenuBar::AddToolsMenu()
m_export_wii_saves = m_export_wii_saves =
tools_menu->addAction(tr("Export All Wii Saves"), this, &MenuBar::ExportWiiSaves); tools_menu->addAction(tr("Export All Wii Saves"), this, &MenuBar::ExportWiiSaves);
QMenu* connect_wii_remotes_menu = new QMenu(tr("Connect Wii Remotes"), tools_menu); auto* const connect_wii_remotes_menu{
new QtUtils::NonAutodismissibleMenu(tr("Connect Wii Remotes"), tools_menu)};
tools_menu->addSeparator(); tools_menu->addSeparator();
tools_menu->addMenu(connect_wii_remotes_menu); tools_menu->addMenu(connect_wii_remotes_menu);
@ -601,7 +602,8 @@ void MenuBar::AddViewMenu()
void MenuBar::AddOptionsMenu() void MenuBar::AddOptionsMenu()
{ {
QMenu* options_menu = addMenu(tr("&Options")); auto* const options_menu{new QtUtils::NonAutodismissibleMenu(tr("&Options"), this)};
addMenu(options_menu);
#if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0) #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
options_menu->addAction(tr("Co&nfiguration"), QKeySequence::Preferences, this, options_menu->addAction(tr("Co&nfiguration"), QKeySequence::Preferences, this,
&MenuBar::Configure); &MenuBar::Configure);
@ -892,7 +894,8 @@ void MenuBar::AddMovieMenu()
void MenuBar::AddJITMenu() void MenuBar::AddJITMenu()
{ {
m_jit = addMenu(tr("JIT")); m_jit = new QtUtils::NonAutodismissibleMenu(tr("JIT"), this);
addMenu(m_jit);
m_jit_interpreter_core = m_jit->addAction(tr("Interpreter Core")); m_jit_interpreter_core = m_jit->addAction(tr("Interpreter Core"));
m_jit_interpreter_core->setCheckable(true); m_jit_interpreter_core->setCheckable(true);