diff options
| author | Christian Murphy <cfm.work@googlemail.com> | 2017-07-11 15:13:09 +0100 |
|---|---|---|
| committer | Christian Murphy <cfm.work@googlemail.com> | 2017-07-24 14:36:09 +0100 |
| commit | df35a26628fae6cfc874f31f04af799a6c199198 (patch) | |
| tree | c8b50c7012ea18384e630e81ba23ad2ce57e3ba1 /Source/Core/DolphinQt2/MenuBar.cpp | |
| parent | 42f2851fa1fb4ba24747adeb75a905b76ff9542b (diff) | |
Qt: Implement Show Platforms / Show Regions
Porting the View config logic from WX to Qt.
Adds to the View Menu
Diffstat (limited to 'Source/Core/DolphinQt2/MenuBar.cpp')
| -rw-r--r-- | Source/Core/DolphinQt2/MenuBar.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt2/MenuBar.cpp b/Source/Core/DolphinQt2/MenuBar.cpp index 6dbbb89f4b..0089146ace 100644 --- a/Source/Core/DolphinQt2/MenuBar.cpp +++ b/Source/Core/DolphinQt2/MenuBar.cpp @@ -192,6 +192,9 @@ void MenuBar::AddViewMenu() AddGameListTypeSection(view_menu); view_menu->addSeparator(); AddTableColumnsMenu(view_menu); + view_menu->addSeparator(); + AddShowPlatformsMenu(view_menu); + AddShowRegionsMenu(view_menu); } void MenuBar::AddOptionsMenu() @@ -270,6 +273,66 @@ void MenuBar::AddTableColumnsMenu(QMenu* view_menu) } } +void MenuBar::AddShowPlatformsMenu(QMenu* view_menu) +{ + static const QMap<QString, bool*> platform_map{ + {tr("Show Wii"), &SConfig::GetInstance().m_ListWii}, + {tr("Show GameCube"), &SConfig::GetInstance().m_ListGC}, + {tr("Show WAD"), &SConfig::GetInstance().m_ListWad}, + {tr("Show ELF/DOL"), &SConfig::GetInstance().m_ListElfDol}}; + + QActionGroup* platform_group = new QActionGroup(this); + QMenu* plat_menu = view_menu->addMenu(tr("Show Platforms")); + platform_group->setExclusive(false); + + for (const auto& key : platform_map.keys()) + { + bool* config = platform_map[key]; + QAction* action = platform_group->addAction(plat_menu->addAction(key)); + action->setCheckable(true); + action->setChecked(*config); + connect(action, &QAction::toggled, [this, config, key](bool value) { + *config = value; + emit GameListPlatformVisibilityToggled(key, value); + }); + } +} + +void MenuBar::AddShowRegionsMenu(QMenu* view_menu) +{ + static const QMap<QString, bool*> region_map{ + {tr("Show JAP"), &SConfig::GetInstance().m_ListJap}, + {tr("Show PAL"), &SConfig::GetInstance().m_ListPal}, + {tr("Show USA"), &SConfig::GetInstance().m_ListUsa}, + {tr("Show Australia"), &SConfig::GetInstance().m_ListAustralia}, + {tr("Show France"), &SConfig::GetInstance().m_ListFrance}, + {tr("Show Germany"), &SConfig::GetInstance().m_ListGermany}, + {tr("Show Italy"), &SConfig::GetInstance().m_ListItaly}, + {tr("Show Korea"), &SConfig::GetInstance().m_ListKorea}, + {tr("Show Netherlands"), &SConfig::GetInstance().m_ListNetherlands}, + {tr("Show Russia"), &SConfig::GetInstance().m_ListRussia}, + {tr("Show Spain"), &SConfig::GetInstance().m_ListSpain}, + {tr("Show Taiwan"), &SConfig::GetInstance().m_ListTaiwan}, + {tr("Show World"), &SConfig::GetInstance().m_ListWorld}, + {tr("Show Unknown"), &SConfig::GetInstance().m_ListUnknown}}; + + QActionGroup* region_group = new QActionGroup(this); + QMenu* region_menu = view_menu->addMenu(tr("Show Regions")); + region_group->setExclusive(false); + + for (const auto& key : region_map.keys()) + { + bool* config = region_map[key]; + QAction* action = region_group->addAction(region_menu->addAction(key)); + action->setCheckable(true); + action->setChecked(*config); + connect(action, &QAction::toggled, [this, config, key](bool value) { + *config = value; + emit GameListRegionVisibilityToggled(key, value); + }); + } +} + void MenuBar::UpdateToolsMenu(bool emulation_started) { m_boot_sysmenu->setEnabled(!emulation_started); |
