mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
DolphinQt: Use non-autodismissable menus in menu bar.
A new class that derives from `QMenu` has been introduced. Menus of this `NonAutodismissibleMenu` type will stay visible when a _checkable_ action is triggered. This is convenient in menus that feature a series of check boxes that toggle visibility of third components (e.g. the **List Columns** menu), allowing the user to toggle several actions at once. For now, the new type is used in the top menu bar.
This commit is contained in:

committed by
Admiral H. Curtiss

parent
db425ef3a1
commit
2eeb2fd2b9
28
Source/Core/DolphinQt/QtUtils/NonAutodismissibleMenu.cpp
Normal file
28
Source/Core/DolphinQt/QtUtils/NonAutodismissibleMenu.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright 2025 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "DolphinQt/QtUtils/NonAutodismissibleMenu.h"
|
||||
|
||||
#include <QAction>
|
||||
#include <QMouseEvent>
|
||||
|
||||
namespace QtUtils
|
||||
{
|
||||
|
||||
void NonAutodismissibleMenu::mouseReleaseEvent(QMouseEvent* const event)
|
||||
{
|
||||
if (!event)
|
||||
return;
|
||||
|
||||
QAction* const action{activeAction()};
|
||||
if (action && action->isEnabled() && action->isCheckable())
|
||||
{
|
||||
action->trigger();
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
|
||||
QMenu::mouseReleaseEvent(event);
|
||||
}
|
||||
|
||||
} // namespace QtUtils
|
Reference in New Issue
Block a user