mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:24:00 +02:00
Fix menu so that functions indirectly triggered by menu scanning don't inherit the menu group
This commit is contained in:
parent
479b9a9f2b
commit
f819e98d94
1 changed files with 20 additions and 4 deletions
|
@ -21,6 +21,8 @@
|
|||
|
||||
using namespace ui;
|
||||
|
||||
static QList<QString> groups;
|
||||
|
||||
Menu::Menu() {}
|
||||
|
||||
void Menu::toggleAdvancedMenus() {
|
||||
|
@ -40,13 +42,23 @@ void Menu::saveSettings() {
|
|||
}
|
||||
|
||||
void Menu::loadAction(Settings& settings, QAction& action) {
|
||||
if (action.isChecked() != settings.value(action.text(), action.isChecked()).toBool()) {
|
||||
QString prefix;
|
||||
for (QString group : groups) {
|
||||
prefix += group;
|
||||
prefix += "/";
|
||||
}
|
||||
if (action.isChecked() != settings.value(prefix + action.text(), action.isChecked()).toBool()) {
|
||||
action.trigger();
|
||||
}
|
||||
}
|
||||
|
||||
void Menu::saveAction(Settings& settings, QAction& action) {
|
||||
settings.setValue(action.text(), action.isChecked());
|
||||
QString prefix;
|
||||
for (QString group : groups) {
|
||||
prefix += group;
|
||||
prefix += "/";
|
||||
}
|
||||
settings.setValue(prefix + action.text(), action.isChecked());
|
||||
}
|
||||
|
||||
void Menu::scanMenuBar(settingsAction modifySetting) {
|
||||
|
@ -57,7 +69,9 @@ void Menu::scanMenuBar(settingsAction modifySetting) {
|
|||
}
|
||||
|
||||
void Menu::scanMenu(QMenu& menu, settingsAction modifySetting, Settings& settings) {
|
||||
settings.beginGroup(menu.title());
|
||||
groups.push_back(menu.title());
|
||||
|
||||
// settings.beginGroup(menu.title());
|
||||
foreach (QAction* action, menu.actions()) {
|
||||
if (action->menu()) {
|
||||
scanMenu(*action->menu(), modifySetting, settings);
|
||||
|
@ -65,7 +79,9 @@ void Menu::scanMenu(QMenu& menu, settingsAction modifySetting, Settings& setting
|
|||
modifySetting(settings, *action);
|
||||
}
|
||||
}
|
||||
settings.endGroup();
|
||||
// settings.endGroup();
|
||||
|
||||
groups.pop_back();
|
||||
}
|
||||
|
||||
void Menu::addDisabledActionAndSeparator(MenuWrapper* destinationMenu, const QString& actionName,
|
||||
|
|
Loading…
Reference in a new issue