Qt: Make QSettings use the user config directory

This commit is contained in:
spycrab 2018-03-23 12:10:53 +01:00
parent 773ec975f3
commit 68733ac6c1
10 changed files with 48 additions and 43 deletions

View file

@ -9,7 +9,6 @@
#include <QListWidget> #include <QListWidget>
#include <QPushButton> #include <QPushButton>
#include <QRadioButton> #include <QRadioButton>
#include <QSettings>
#include <QVBoxLayout> #include <QVBoxLayout>
#include "Common/FileUtil.h" #include "Common/FileUtil.h"
@ -122,7 +121,7 @@ void LogConfigWidget::ConnectWidgets()
void LogConfigWidget::LoadSettings() void LogConfigWidget::LoadSettings()
{ {
auto* logmanager = LogManager::GetInstance(); auto* logmanager = LogManager::GetInstance();
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("logconfigwidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("logconfigwidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("logconfigwidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("logconfigwidget/floating")).toBool());
@ -156,7 +155,7 @@ void LogConfigWidget::SaveSettings()
if (m_block_save) if (m_block_save)
return; return;
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("logconfigwidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("logconfigwidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("logconfigwidget/floating"), isFloating()); settings.setValue(QStringLiteral("logconfigwidget/floating"), isFloating());

View file

@ -11,7 +11,6 @@
#include <QGroupBox> #include <QGroupBox>
#include <QPushButton> #include <QPushButton>
#include <QScrollBar> #include <QScrollBar>
#include <QSettings>
#include <QTextEdit> #include <QTextEdit>
#include <QTimer> #include <QTimer>
#include <QVBoxLayout> #include <QVBoxLayout>
@ -146,7 +145,7 @@ void LogWidget::ConnectWidgets()
void LogWidget::LoadSettings() void LogWidget::LoadSettings()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("logwidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("logwidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("logwidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("logwidget/floating")).toBool());
@ -163,7 +162,7 @@ void LogWidget::LoadSettings()
void LogWidget::SaveSettings() void LogWidget::SaveSettings()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("logwidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("logwidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("logwidget/floating"), isFloating()); settings.setValue(QStringLiteral("logwidget/floating"), isFloating());

View file

@ -5,7 +5,6 @@
#include "DolphinQt2/Debugger/BreakpointWidget.h" #include "DolphinQt2/Debugger/BreakpointWidget.h"
#include <QHeaderView> #include <QHeaderView>
#include <QSettings>
#include <QTableWidget> #include <QTableWidget>
#include <QToolBar> #include <QToolBar>
#include <QVBoxLayout> #include <QVBoxLayout>
@ -26,7 +25,7 @@ BreakpointWidget::BreakpointWidget(QWidget* parent) : QDockWidget(parent)
setWindowTitle(tr("Breakpoints")); setWindowTitle(tr("Breakpoints"));
setAllowedAreas(Qt::AllDockWidgetAreas); setAllowedAreas(Qt::AllDockWidgetAreas);
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("breakpointwidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("breakpointwidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("breakpointwidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("breakpointwidget/floating")).toBool());
@ -56,7 +55,7 @@ BreakpointWidget::BreakpointWidget(QWidget* parent) : QDockWidget(parent)
BreakpointWidget::~BreakpointWidget() BreakpointWidget::~BreakpointWidget()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("breakpointwidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("breakpointwidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("breakpointwidget/floating"), isFloating()); settings.setValue(QStringLiteral("breakpointwidget/floating"), isFloating());

View file

@ -10,7 +10,6 @@
#include <QGroupBox> #include <QGroupBox>
#include <QLineEdit> #include <QLineEdit>
#include <QListWidget> #include <QListWidget>
#include <QSettings>
#include <QSplitter> #include <QSplitter>
#include <QTableWidget> #include <QTableWidget>
#include <QWidget> #include <QWidget>
@ -30,7 +29,7 @@ CodeWidget::CodeWidget(QWidget* parent) : QDockWidget(parent)
setWindowTitle(tr("Code")); setWindowTitle(tr("Code"));
setAllowedAreas(Qt::AllDockWidgetAreas); setAllowedAreas(Qt::AllDockWidgetAreas);
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("codewidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("codewidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("codewidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("codewidget/floating")).toBool());
@ -58,7 +57,7 @@ CodeWidget::CodeWidget(QWidget* parent) : QDockWidget(parent)
CodeWidget::~CodeWidget() CodeWidget::~CodeWidget()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("codewidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("codewidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("codewidget/floating"), isFloating()); settings.setValue(QStringLiteral("codewidget/floating"), isFloating());

View file

@ -12,7 +12,6 @@
#include <QHeaderView> #include <QHeaderView>
#include <QMenu> #include <QMenu>
#include <QSettings>
#include <QTableWidget> #include <QTableWidget>
#include <QVBoxLayout> #include <QVBoxLayout>
@ -21,7 +20,7 @@ RegisterWidget::RegisterWidget(QWidget* parent) : QDockWidget(parent)
setWindowTitle(tr("Registers")); setWindowTitle(tr("Registers"));
setAllowedAreas(Qt::AllDockWidgetAreas); setAllowedAreas(Qt::AllDockWidgetAreas);
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("registerwidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("registerwidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("registerwidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("registerwidget/floating")).toBool());
@ -54,7 +53,7 @@ RegisterWidget::RegisterWidget(QWidget* parent) : QDockWidget(parent)
RegisterWidget::~RegisterWidget() RegisterWidget::~RegisterWidget()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("registerwidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("registerwidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("registerwidget/floating"), isFloating()); settings.setValue(QStringLiteral("registerwidget/floating"), isFloating());

View file

@ -15,7 +15,6 @@
#include <QHeaderView> #include <QHeaderView>
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QSettings>
#include <QTableWidget> #include <QTableWidget>
#include <QToolBar> #include <QToolBar>
#include <QVBoxLayout> #include <QVBoxLayout>
@ -27,7 +26,7 @@ WatchWidget::WatchWidget(QWidget* parent) : QDockWidget(parent)
setWindowTitle(tr("Watch")); setWindowTitle(tr("Watch"));
setAllowedAreas(Qt::AllDockWidgetAreas); setAllowedAreas(Qt::AllDockWidgetAreas);
QSettings settings; auto& settings = Settings::GetQSettings();
restoreGeometry(settings.value(QStringLiteral("watchwidget/geometry")).toByteArray()); restoreGeometry(settings.value(QStringLiteral("watchwidget/geometry")).toByteArray());
setFloating(settings.value(QStringLiteral("watchwidget/floating")).toBool()); setFloating(settings.value(QStringLiteral("watchwidget/floating")).toBool());
@ -59,7 +58,7 @@ WatchWidget::WatchWidget(QWidget* parent) : QDockWidget(parent)
WatchWidget::~WatchWidget() WatchWidget::~WatchWidget()
{ {
QSettings settings; auto& settings = Settings::GetQSettings();
settings.setValue(QStringLiteral("watchwidget/geometry"), saveGeometry()); settings.setValue(QStringLiteral("watchwidget/geometry"), saveGeometry());
settings.setValue(QStringLiteral("watchwidget/floating"), isFloating()); settings.setValue(QStringLiteral("watchwidget/floating"), isFloating());

View file

@ -14,7 +14,6 @@
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QProgressDialog> #include <QProgressDialog>
#include <QSettings>
#include <QUrl> #include <QUrl>
#include "Common/FileUtil.h" #include "Common/FileUtil.h"
@ -106,7 +105,8 @@ void GameList::MakeListView()
connect(hor_header, &QHeaderView::sectionMoved, this, &GameList::OnHeaderViewChanged); connect(hor_header, &QHeaderView::sectionMoved, this, &GameList::OnHeaderViewChanged);
hor_header->setSectionsMovable(true); hor_header->setSectionsMovable(true);
hor_header->restoreState(QSettings().value(QStringLiteral("tableheader/state")).toByteArray()); hor_header->restoreState(
Settings::GetQSettings().value(QStringLiteral("tableheader/state")).toByteArray());
hor_header->setSectionResizeMode(GameListModel::COL_PLATFORM, QHeaderView::ResizeToContents); hor_header->setSectionResizeMode(GameListModel::COL_PLATFORM, QHeaderView::ResizeToContents);
hor_header->setSectionResizeMode(GameListModel::COL_BANNER, QHeaderView::ResizeToContents); hor_header->setSectionResizeMode(GameListModel::COL_BANNER, QHeaderView::ResizeToContents);
@ -518,8 +518,8 @@ static bool CompressCB(const std::string& text, float percent, void* ptr)
void GameList::OnHeaderViewChanged() void GameList::OnHeaderViewChanged()
{ {
QSettings().setValue(QStringLiteral("tableheader/state"), Settings::GetQSettings().setValue(QStringLiteral("tableheader/state"),
m_list->horizontalHeader()->saveState()); m_list->horizontalHeader()->saveState());
} }
void GameList::SetSearchTerm(const QString& term) void GameList::SetSearchTerm(const QString& term)

View file

@ -17,7 +17,6 @@
#include <QListWidget> #include <QListWidget>
#include <QMessageBox> #include <QMessageBox>
#include <QPushButton> #include <QPushButton>
#include <QSettings>
#include <QSpinBox> #include <QSpinBox>
#include <QTabWidget> #include <QTabWidget>
@ -50,7 +49,7 @@ NetPlaySetupDialog::NetPlaySetupDialog(QWidget* parent)
OnConnectionTypeChanged(m_connection_type->currentIndex()); OnConnectionTypeChanged(m_connection_type->currentIndex());
int selected_game = QSettings().value(QStringLiteral("netplay/hostgame"), 0).toInt(); int selected_game = Settings::GetQSettings().value(QStringLiteral("netplay/hostgame"), 0).toInt();
if (selected_game >= m_host_games->count()) if (selected_game >= m_host_games->count())
selected_game = 0; selected_game = 0;
@ -160,7 +159,9 @@ void NetPlaySetupDialog::ConnectWidgets()
connect(m_host_port_box, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, connect(m_host_port_box, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this,
&NetPlaySetupDialog::SaveSettings); &NetPlaySetupDialog::SaveSettings);
connect(m_host_games, static_cast<void (QListWidget::*)(int)>(&QListWidget::currentRowChanged), connect(m_host_games, static_cast<void (QListWidget::*)(int)>(&QListWidget::currentRowChanged),
[](int index) { QSettings().setValue(QStringLiteral("netplay/hostgame"), index); }); [](int index) {
Settings::GetQSettings().setValue(QStringLiteral("netplay/hostgame"), index);
});
connect(m_host_force_port_check, &QCheckBox::toggled, connect(m_host_force_port_check, &QCheckBox::toggled,
[this](int value) { m_host_force_port_box->setEnabled(value); }); [this](int value) { m_host_force_port_box->setEnabled(value); });
#ifdef USE_UPNP #ifdef USE_UPNP

View file

@ -33,6 +33,14 @@ Settings& Settings::Instance()
return settings; return settings;
} }
QSettings& Settings::GetQSettings()
{
static QSettings settings(
QStringLiteral("%1/Qt.ini").arg(QString::fromStdString(File::GetUserPath(D_CONFIG_IDX))),
QSettings::IniFormat);
return settings;
}
void Settings::SetThemeName(const QString& theme_name) void Settings::SetThemeName(const QString& theme_name)
{ {
SConfig::GetInstance().theme_name = theme_name.toStdString(); SConfig::GetInstance().theme_name = theme_name.toStdString();
@ -88,22 +96,22 @@ void Settings::SetDefaultGame(QString path)
bool Settings::GetPreferredView() const bool Settings::GetPreferredView() const
{ {
return QSettings().value(QStringLiteral("PreferredView"), true).toBool(); return GetQSettings().value(QStringLiteral("PreferredView"), true).toBool();
} }
void Settings::SetPreferredView(bool list) void Settings::SetPreferredView(bool list)
{ {
QSettings().setValue(QStringLiteral("PreferredView"), list); GetQSettings().setValue(QStringLiteral("PreferredView"), list);
} }
int Settings::GetStateSlot() const int Settings::GetStateSlot() const
{ {
return QSettings().value(QStringLiteral("Emulation/StateSlot"), 1).toInt(); return GetQSettings().value(QStringLiteral("Emulation/StateSlot"), 1).toInt();
} }
void Settings::SetStateSlot(int slot) void Settings::SetStateSlot(int slot)
{ {
QSettings().setValue(QStringLiteral("Emulation/StateSlot"), slot); GetQSettings().setValue(QStringLiteral("Emulation/StateSlot"), slot);
} }
void Settings::SetHideCursor(bool hide_cursor) void Settings::SetHideCursor(bool hide_cursor)
@ -145,28 +153,28 @@ void Settings::DecreaseVolume(int volume)
bool Settings::IsLogVisible() const bool Settings::IsLogVisible() const
{ {
return QSettings().value(QStringLiteral("logging/logvisible")).toBool(); return GetQSettings().value(QStringLiteral("logging/logvisible")).toBool();
} }
void Settings::SetLogVisible(bool visible) void Settings::SetLogVisible(bool visible)
{ {
if (IsLogVisible() != visible) if (IsLogVisible() != visible)
{ {
QSettings().setValue(QStringLiteral("logging/logvisible"), visible); GetQSettings().setValue(QStringLiteral("logging/logvisible"), visible);
emit LogVisibilityChanged(visible); emit LogVisibilityChanged(visible);
} }
} }
bool Settings::IsLogConfigVisible() const bool Settings::IsLogConfigVisible() const
{ {
return QSettings().value(QStringLiteral("logging/logconfigvisible")).toBool(); return GetQSettings().value(QStringLiteral("logging/logconfigvisible")).toBool();
} }
void Settings::SetLogConfigVisible(bool visible) void Settings::SetLogConfigVisible(bool visible)
{ {
if (IsLogConfigVisible() != visible) if (IsLogConfigVisible() != visible)
{ {
QSettings().setValue(QStringLiteral("logging/logconfigvisible"), visible); GetQSettings().setValue(QStringLiteral("logging/logconfigvisible"), visible);
emit LogConfigVisibilityChanged(visible); emit LogConfigVisibilityChanged(visible);
} }
} }
@ -229,7 +237,7 @@ void Settings::SetRegistersVisible(bool enabled)
{ {
if (IsRegistersVisible() != enabled) if (IsRegistersVisible() != enabled)
{ {
QSettings().setValue(QStringLiteral("debugger/showregisters"), enabled); GetQSettings().setValue(QStringLiteral("debugger/showregisters"), enabled);
emit RegistersVisibilityChanged(enabled); emit RegistersVisibilityChanged(enabled);
} }
@ -237,14 +245,14 @@ void Settings::SetRegistersVisible(bool enabled)
bool Settings::IsRegistersVisible() const bool Settings::IsRegistersVisible() const
{ {
return QSettings().value(QStringLiteral("debugger/showregisters")).toBool(); return GetQSettings().value(QStringLiteral("debugger/showregisters")).toBool();
} }
void Settings::SetWatchVisible(bool enabled) void Settings::SetWatchVisible(bool enabled)
{ {
if (IsWatchVisible() != enabled) if (IsWatchVisible() != enabled)
{ {
QSettings().setValue(QStringLiteral("debugger/showwatch"), enabled); GetQSettings().setValue(QStringLiteral("debugger/showwatch"), enabled);
emit WatchVisibilityChanged(enabled); emit WatchVisibilityChanged(enabled);
} }
@ -252,14 +260,14 @@ void Settings::SetWatchVisible(bool enabled)
bool Settings::IsWatchVisible() const bool Settings::IsWatchVisible() const
{ {
return QSettings().value(QStringLiteral("debugger/showwatch")).toBool(); return GetQSettings().value(QStringLiteral("debugger/showwatch")).toBool();
} }
void Settings::SetBreakpointsVisible(bool enabled) void Settings::SetBreakpointsVisible(bool enabled)
{ {
if (IsBreakpointsVisible() != enabled) if (IsBreakpointsVisible() != enabled)
{ {
QSettings().setValue(QStringLiteral("debugger/showbreakpoints"), enabled); GetQSettings().setValue(QStringLiteral("debugger/showbreakpoints"), enabled);
emit BreakpointsVisibilityChanged(enabled); emit BreakpointsVisibilityChanged(enabled);
} }
@ -267,7 +275,7 @@ void Settings::SetBreakpointsVisible(bool enabled)
bool Settings::IsBreakpointsVisible() const bool Settings::IsBreakpointsVisible() const
{ {
return QSettings().value(QStringLiteral("debugger/showbreakpoints")).toBool(); return GetQSettings().value(QStringLiteral("debugger/showbreakpoints")).toBool();
} }
bool Settings::IsControllerStateNeeded() const bool Settings::IsControllerStateNeeded() const
@ -284,7 +292,7 @@ void Settings::SetCodeVisible(bool enabled)
{ {
if (IsCodeVisible() != enabled) if (IsCodeVisible() != enabled)
{ {
QSettings().setValue(QStringLiteral("debugger/showcode"), enabled); GetQSettings().setValue(QStringLiteral("debugger/showcode"), enabled);
emit CodeVisibilityChanged(enabled); emit CodeVisibilityChanged(enabled);
} }
@ -292,14 +300,14 @@ void Settings::SetCodeVisible(bool enabled)
bool Settings::IsCodeVisible() const bool Settings::IsCodeVisible() const
{ {
return QSettings().value(QStringLiteral("debugger/showcode")).toBool(); return GetQSettings().value(QStringLiteral("debugger/showcode")).toBool();
} }
void Settings::SetDebugFont(QFont font) void Settings::SetDebugFont(QFont font)
{ {
if (GetDebugFont() != font) if (GetDebugFont() != font)
{ {
QSettings().setValue(QStringLiteral("debugger/font"), font); GetQSettings().setValue(QStringLiteral("debugger/font"), font);
emit DebugFontChanged(font); emit DebugFontChanged(font);
} }
@ -310,7 +318,7 @@ QFont Settings::GetDebugFont() const
QFont default_font = QFont(QStringLiteral("Monospace")); QFont default_font = QFont(QStringLiteral("Monospace"));
default_font.setStyleHint(QFont::TypeWriter); default_font.setStyleHint(QFont::TypeWriter);
return QSettings().value(QStringLiteral("debugger/font"), default_font).value<QFont>(); return GetQSettings().value(QStringLiteral("debugger/font"), default_font).value<QFont>();
} }
void Settings::SetAutoUpdateTrack(const QString& mode) void Settings::SetAutoUpdateTrack(const QString& mode)

View file

@ -8,6 +8,7 @@
#include <QFont> #include <QFont>
#include <QObject> #include <QObject>
#include <QSettings>
#include <QVector> #include <QVector>
#include "Core/NetPlayClient.h" #include "Core/NetPlayClient.h"
@ -39,6 +40,7 @@ public:
Settings& operator=(Settings&&) = delete; Settings& operator=(Settings&&) = delete;
static Settings& Instance(); static Settings& Instance();
static QSettings& GetQSettings();
// UI // UI
void SetThemeName(const QString& theme_name); void SetThemeName(const QString& theme_name);