DolphinQt2: make Settings a singleton

With this, we can get signals when properties change.
This commit is contained in:
Michael Maltese
2017-05-31 00:17:39 -07:00
parent 95ef785b1f
commit 548522877a
15 changed files with 109 additions and 89 deletions

View File

@ -140,7 +140,7 @@ void MenuBar::AddStateSlotMenu(QMenu* emu_menu)
QAction* action = m_state_slot_menu->addAction(QStringLiteral(""));
action->setCheckable(true);
action->setActionGroup(m_state_slots);
if (Settings().GetStateSlot() == i)
if (Settings::Instance().GetStateSlot() == i)
action->setChecked(true);
connect(action, &QAction::triggered, this, [=]() { emit SetStateSlot(i); });
@ -203,7 +203,7 @@ void MenuBar::AddGameListTypeSection(QMenu* view_menu)
list_group->addAction(table_view);
list_group->addAction(list_view);
bool prefer_table = Settings().GetPreferredView();
bool prefer_table = Settings::Instance().GetPreferredView();
table_view->setChecked(prefer_table);
list_view->setChecked(!prefer_table);
@ -213,15 +213,16 @@ void MenuBar::AddGameListTypeSection(QMenu* view_menu)
void MenuBar::AddTableColumnsMenu(QMenu* view_menu)
{
static const QMap<QString, bool*> columns{{tr("Platform"), &Settings().PlatformVisible()},
{tr("ID"), &Settings().IDVisible()},
{tr("Banner"), &Settings().BannerVisible()},
{tr("Title"), &Settings().TitleVisible()},
{tr("Description"), &Settings().DescriptionVisible()},
{tr("Maker"), &Settings().MakerVisible()},
{tr("Size"), &Settings().SizeVisible()},
{tr("Country"), &Settings().CountryVisible()},
{tr("Quality"), &Settings().StateVisible()}};
auto& settings = Settings::Instance();
static const QMap<QString, bool*> columns{{tr("Platform"), &settings.PlatformVisible()},
{tr("ID"), &settings.IDVisible()},
{tr("Banner"), &settings.BannerVisible()},
{tr("Title"), &settings.TitleVisible()},
{tr("Description"), &settings.DescriptionVisible()},
{tr("Maker"), &settings.MakerVisible()},
{tr("Size"), &settings.SizeVisible()},
{tr("Country"), &settings.CountryVisible()},
{tr("Quality"), &settings.StateVisible()}};
QActionGroup* column_group = new QActionGroup(this);
QMenu* cols_menu = view_menu->addMenu(tr("Table Columns"));
@ -235,7 +236,7 @@ void MenuBar::AddTableColumnsMenu(QMenu* view_menu)
action->setChecked(*config);
connect(action, &QAction::toggled, [this, config, key](bool value) {
*config = value;
Settings().Save();
Settings::Instance().Save();
emit ColumnVisibilityToggled(key, value);
});
}