dolphin/Source/Core/DolphinQt2/Settings.cpp

349 lines
7.9 KiB
C++
Raw Normal View History

// Copyright 2015 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
2017-05-09 16:49:10 +00:00
#include <QDir>
#include <QSize>
2017-05-20 15:53:17 +00:00
#include "Common/FileSearch.h"
#include "Common/FileUtil.h"
2017-05-20 15:53:17 +00:00
#include "Common/StringUtil.h"
#include "Core/ConfigManager.h"
#include "DolphinQt2/Settings.h"
2017-05-20 15:53:17 +00:00
#include "InputCommon/InputConfig.h"
static QString GetSettingsPath()
{
return QString::fromStdString(File::GetUserPath(D_CONFIG_IDX)) + QStringLiteral("/UI.ini");
}
Settings::Settings(QObject* parent) : QSettings(GetSettingsPath(), QSettings::IniFormat, parent)
{
}
QString Settings::GetThemeDir() const
{
QString theme_name = value(QStringLiteral("Theme"), QStringLiteral("Clean")).toString();
return QString::fromStdString(File::GetThemeDir(theme_name.toStdString()));
}
2017-05-09 16:49:10 +00:00
QString Settings::GetResourcesDir() const
{
return QString::fromStdString(File::GetSysDirectory().append("Resources"))
.append(QDir::separator());
}
2017-05-20 15:53:17 +00:00
QString Settings::GetProfilesDir() const
{
return QString::fromStdString(File::GetUserPath(D_CONFIG_IDX) + "Profiles/");
}
QString Settings::GetProfileINIPath(const InputConfig* config, const QString& name) const
{
return GetProfilesDir() + QString::fromStdString(config->GetProfileName()) + QDir::separator() +
name + QStringLiteral(".ini");
}
bool Settings::IsInDevelopmentWarningEnabled() const
{
// There's intentionally no way to set this from the UI.
// Add it to your INI manually instead.
return value(QStringLiteral("ShowDevelopmentWarning"), true).toBool();
}
QString Settings::GetLastGame() const
{
return value(QStringLiteral("GameList/LastGame")).toString();
}
void Settings::SetLastGame(const QString& path)
{
setValue(QStringLiteral("GameList/LastGame"), path);
}
QStringList Settings::GetPaths() const
{
return value(QStringLiteral("GameList/Paths")).toStringList();
}
void Settings::SetPaths(const QStringList& paths)
{
setValue(QStringLiteral("GameList/Paths"), paths);
}
2015-12-31 03:03:13 +00:00
void Settings::RemovePath(int i)
{
QStringList paths = GetPaths();
paths.removeAt(i);
SetPaths(paths);
2015-12-31 03:03:13 +00:00
}
QString Settings::GetDefaultGame() const
{
return QString::fromStdString(SConfig::GetInstance().m_strDefaultISO);
2015-12-31 03:03:13 +00:00
}
void Settings::SetDefaultGame(const QString& path)
{
SConfig::GetInstance().m_strDefaultISO = path.toStdString();
SConfig::GetInstance().SaveSettings();
2015-12-31 03:03:13 +00:00
}
QString Settings::GetDVDRoot() const
{
return QString::fromStdString(SConfig::GetInstance().m_strDVDRoot);
2015-12-31 03:03:13 +00:00
}
void Settings::SetDVDRoot(const QString& path)
{
SConfig::GetInstance().m_strDVDRoot = path.toStdString();
SConfig::GetInstance().SaveSettings();
2015-12-31 03:03:13 +00:00
}
QString Settings::GetApploader() const
{
return QString::fromStdString(SConfig::GetInstance().m_strApploader);
2015-12-31 03:03:13 +00:00
}
void Settings::SetApploader(const QString& path)
{
SConfig::GetInstance().m_strApploader = path.toStdString();
SConfig::GetInstance().SaveSettings();
2015-12-31 03:03:13 +00:00
}
QString Settings::GetWiiNAND() const
{
return QString::fromStdString(SConfig::GetInstance().m_NANDPath);
2015-12-31 03:03:13 +00:00
}
void Settings::SetWiiNAND(const QString& path)
{
SConfig::GetInstance().m_NANDPath = path.toStdString();
SConfig::GetInstance().SaveSettings();
2015-12-31 03:03:13 +00:00
}
float Settings::GetEmulationSpeed() const
{
return SConfig::GetInstance().m_EmulationSpeed;
}
void Settings::SetEmulationSpeed(float val)
{
SConfig::GetInstance().m_EmulationSpeed = val;
}
bool Settings::GetForceNTSCJ() const
{
return SConfig::GetInstance().bForceNTSCJ;
}
void Settings::SetForceNTSCJ(bool val)
{
SConfig::GetInstance().bForceNTSCJ = val;
}
bool Settings::GetAnalyticsEnabled() const
{
return SConfig::GetInstance().m_analytics_enabled;
}
void Settings::SetAnalyticsEnabled(bool val)
{
SConfig::GetInstance().m_analytics_enabled = val;
}
DiscIO::Language Settings::GetWiiSystemLanguage() const
{
return SConfig::GetInstance().GetCurrentLanguage(true);
}
DiscIO::Language Settings::GetGCSystemLanguage() const
{
return SConfig::GetInstance().GetCurrentLanguage(false);
}
bool Settings::GetPreferredView() const
{
return value(QStringLiteral("PreferredView"), true).toBool();
}
void Settings::SetPreferredView(bool table)
{
setValue(QStringLiteral("PreferredView"), table);
}
bool Settings::GetConfirmStop() const
{
return value(QStringLiteral("Emulation/ConfirmStop"), true).toBool();
}
int Settings::GetStateSlot() const
{
return value(QStringLiteral("Emulation/StateSlot"), 1).toInt();
}
void Settings::SetStateSlot(int slot)
{
setValue(QStringLiteral("Emulation/StateSlot"), slot);
}
bool Settings::GetRenderToMain() const
{
return value(QStringLiteral("Graphics/RenderToMain"), false).toBool();
}
bool Settings::GetFullScreen() const
{
return value(QStringLiteral("Graphics/FullScreen"), false).toBool();
}
QSize Settings::GetRenderWindowSize() const
{
return value(QStringLiteral("Graphics/RenderWindowSize"), QSize(640, 480)).toSize();
}
2017-05-08 17:03:59 +00:00
bool& Settings::BannerVisible() const
{
return SConfig::GetInstance().m_showBannerColumn;
}
bool& Settings::CountryVisible() const
{
return SConfig::GetInstance().m_showRegionColumn;
}
bool& Settings::DescriptionVisible() const
{
return SConfig::GetInstance().m_showDescriptionColumn;
}
bool& Settings::FilenameVisible() const
{
return SConfig::GetInstance().m_showFileNameColumn;
}
bool& Settings::IDVisible() const
{
return SConfig::GetInstance().m_showIDColumn;
}
bool& Settings::MakerVisible() const
{
return SConfig::GetInstance().m_showMakerColumn;
}
bool& Settings::PlatformVisible() const
{
return SConfig::GetInstance().m_showSystemColumn;
}
bool& Settings::TitleVisible() const
{
return SConfig::GetInstance().m_showTitleColumn;
}
bool& Settings::SizeVisible() const
{
return SConfig::GetInstance().m_showSizeColumn;
}
bool& Settings::StateVisible() const
{
return SConfig::GetInstance().m_showStateColumn;
}
2017-05-09 16:49:10 +00:00
bool Settings::IsBluetoothPassthroughEnabled() const
{
return SConfig::GetInstance().m_bt_passthrough_enabled;
}
void Settings::SetBluetoothPassthroughEnabled(bool enabled)
{
SConfig::GetInstance().m_bt_passthrough_enabled = enabled;
}
bool Settings::IsContinuousScanningEnabled() const
{
return SConfig::GetInstance().m_WiimoteContinuousScanning;
}
void Settings::SetContinuousScanningEnabled(bool enabled)
{
SConfig::GetInstance().m_WiimoteContinuousScanning = enabled;
}
bool Settings::IsBackgroundInputEnabled() const
{
return SConfig::GetInstance().m_BackgroundInput;
}
void Settings::SetBackgroundInputEnabled(bool enabled)
{
SConfig::GetInstance().m_BackgroundInput = enabled;
}
bool Settings::IsWiimoteSpeakerEnabled() const
{
return SConfig::GetInstance().m_WiimoteEnableSpeaker;
}
void Settings::SetWiimoteSpeakerEnabled(bool enabled)
{
SConfig::GetInstance().m_WiimoteEnableSpeaker = enabled;
}
SerialInterface::SIDevices Settings::GetSIDevice(size_t i) const
{
return SConfig::GetInstance().m_SIDevice[i];
}
void Settings::SetSIDevice(size_t i, SerialInterface::SIDevices device)
{
SConfig::GetInstance().m_SIDevice[i] = device;
}
bool Settings::IsWiiGameRunning() const
{
return SConfig::GetInstance().bWii;
}
2017-05-20 15:53:17 +00:00
bool Settings::IsGCAdapterRumbleEnabled(int port) const
{
return SConfig::GetInstance().m_AdapterRumble[port];
}
void Settings::SetGCAdapterRumbleEnabled(int port, bool enabled)
{
SConfig::GetInstance().m_AdapterRumble[port] = enabled;
}
bool Settings::IsGCAdapterSimulatingDKBongos(int port) const
{
return SConfig::GetInstance().m_AdapterKonga[port];
}
void Settings::SetGCAdapterSimulatingDKBongos(int port, bool enabled)
{
SConfig::GetInstance().m_AdapterKonga[port] = enabled;
}
2017-05-08 17:03:59 +00:00
void Settings::Save()
{
return SConfig::GetInstance().SaveSettings();
}
2017-05-20 15:53:17 +00:00
QVector<QString> Settings::GetProfiles(const InputConfig* config) const
{
const std::string path = GetProfilesDir().toStdString() + config->GetProfileName();
QVector<QString> vec;
for (const auto& file : Common::DoFileSearch({".ini"}, {path}))
{
std::string basename;
SplitPath(file, nullptr, &basename, nullptr);
vec.push_back(QString::fromStdString(basename));
}
return vec;
}