mirror of
https://github.com/JulianGro/overte.git
synced 2025-05-03 02:33:36 +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;
|
using namespace ui;
|
||||||
|
|
||||||
|
static QList<QString> groups;
|
||||||
|
|
||||||
Menu::Menu() {}
|
Menu::Menu() {}
|
||||||
|
|
||||||
void Menu::toggleAdvancedMenus() {
|
void Menu::toggleAdvancedMenus() {
|
||||||
|
@ -40,13 +42,23 @@ void Menu::saveSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::loadAction(Settings& settings, QAction& action) {
|
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();
|
action.trigger();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::saveAction(Settings& settings, QAction& action) {
|
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) {
|
void Menu::scanMenuBar(settingsAction modifySetting) {
|
||||||
|
@ -57,7 +69,9 @@ void Menu::scanMenuBar(settingsAction modifySetting) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::scanMenu(QMenu& menu, settingsAction modifySetting, Settings& settings) {
|
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()) {
|
foreach (QAction* action, menu.actions()) {
|
||||||
if (action->menu()) {
|
if (action->menu()) {
|
||||||
scanMenu(*action->menu(), modifySetting, settings);
|
scanMenu(*action->menu(), modifySetting, settings);
|
||||||
|
@ -65,7 +79,9 @@ void Menu::scanMenu(QMenu& menu, settingsAction modifySetting, Settings& setting
|
||||||
modifySetting(settings, *action);
|
modifySetting(settings, *action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
settings.endGroup();
|
// settings.endGroup();
|
||||||
|
|
||||||
|
groups.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::addDisabledActionAndSeparator(MenuWrapper* destinationMenu, const QString& actionName,
|
void Menu::addDisabledActionAndSeparator(MenuWrapper* destinationMenu, const QString& actionName,
|
||||||
|
|
Loading…
Reference in a new issue