mirror of https://github.com/mgba-emu/mgba.git
Qt: Move MRU to QSettings
This commit is contained in:
parent
4da22679b9
commit
92f877e6a7
|
@ -8,6 +8,7 @@
|
||||||
#include "GameController.h"
|
#include "GameController.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QDir>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -81,6 +82,13 @@ ConfigController::ConfigController(QObject* parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_opts()
|
, m_opts()
|
||||||
{
|
{
|
||||||
|
char path[PATH_MAX];
|
||||||
|
GBAConfigDirectory(path, sizeof(path));
|
||||||
|
QString fileName(path);
|
||||||
|
fileName.append(QDir::separator());
|
||||||
|
fileName.append("qt.ini");
|
||||||
|
m_settings = new QSettings(fileName, QSettings::IniFormat, this);
|
||||||
|
|
||||||
GBAConfigInit(&m_config, PORT);
|
GBAConfigInit(&m_config, PORT);
|
||||||
|
|
||||||
m_opts.audioSync = GameController::AUDIO_SYNC;
|
m_opts.audioSync = GameController::AUDIO_SYNC;
|
||||||
|
@ -178,33 +186,32 @@ void ConfigController::setOption(const char* key, const QVariant& value) {
|
||||||
|
|
||||||
QList<QString> ConfigController::getMRU() const {
|
QList<QString> ConfigController::getMRU() const {
|
||||||
QList<QString> mru;
|
QList<QString> mru;
|
||||||
|
m_settings->beginGroup("mru");
|
||||||
for (int i = 0; i < MRU_LIST_SIZE; ++i) {
|
for (int i = 0; i < MRU_LIST_SIZE; ++i) {
|
||||||
char mruName[7];
|
QString item = m_settings->value(QString::number(i)).toString();
|
||||||
snprintf(mruName, sizeof(mruName) - 1, "mru.%i", i);
|
|
||||||
mruName[sizeof(mruName) - 1] = '\0';
|
|
||||||
QString item = getOption(mruName);
|
|
||||||
if (item.isNull()) {
|
if (item.isNull()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
mru.append(item);
|
mru.append(item);
|
||||||
}
|
}
|
||||||
|
m_settings->endGroup();
|
||||||
return mru;
|
return mru;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigController::setMRU(const QList<QString>& mru) {
|
void ConfigController::setMRU(const QList<QString>& mru) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
m_settings->beginGroup("mru");
|
||||||
for (const QString& item : mru) {
|
for (const QString& item : mru) {
|
||||||
char mruName[7];
|
m_settings->setValue(QString::number(i), item);
|
||||||
snprintf(mruName, sizeof(mruName) - 1, "mru.%i", i);
|
|
||||||
mruName[sizeof(mruName) - 1] = '\0';
|
|
||||||
setOption(mruName, item);
|
|
||||||
++i;
|
++i;
|
||||||
if (i >= MRU_LIST_SIZE) {
|
if (i >= MRU_LIST_SIZE) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m_settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigController::write() {
|
void ConfigController::write() {
|
||||||
GBAConfigSave(&m_config);
|
GBAConfigSave(&m_config);
|
||||||
|
m_settings->sync();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QScopedPointer>
|
#include <QSettings>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
@ -92,6 +92,7 @@ private:
|
||||||
GBAOptions m_opts;
|
GBAOptions m_opts;
|
||||||
|
|
||||||
QMap<QString, ConfigOption*> m_optionSet;
|
QMap<QString, ConfigOption*> m_optionSet;
|
||||||
|
QSettings* m_settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue