mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 09:05:10 -07:00
* [Settings] Shuffle some settings around Took 21 minutes Took 1 hour 25 minutes * [Settings] Camel case everything * Revert debug schema change * Add new classes * Fix card counters writing to global * Fix CI tests * Fix Windows CI * interface() is a protected keyword for MSVC Took 5 minutes Took 5 seconds * [Settings] Keep menu settings on the appearance settings page Leave the 'Menu settings' group box on the appearance settings page for now; relocating it to the user interface settings page will be done in a separate PR. Took 6 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
101 lines
No EOL
3 KiB
C++
101 lines
No EOL
3 KiB
C++
#include "card_database_settings.h"
|
|
|
|
#include <QMutexLocker>
|
|
|
|
CardDatabaseSettings::CardDatabaseSettings(const QString &settingPath, QObject *parent)
|
|
: SettingsManager(settingPath + "cardDatabase.ini", QString(), QString(), parent)
|
|
{
|
|
}
|
|
|
|
void CardDatabaseSettings::setSortKey(QString shortName, unsigned int sortKey)
|
|
{
|
|
setValue(sortKey, "sortKey", "sets", shortName);
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
setOptionsCache[shortName].sortKey = sortKey;
|
|
}
|
|
|
|
void CardDatabaseSettings::setEnabled(QString shortName, bool enabled)
|
|
{
|
|
setValue(enabled, "enabled", "sets", shortName);
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
setOptionsCache[shortName].enabled = enabled;
|
|
}
|
|
|
|
void CardDatabaseSettings::setIsKnown(QString shortName, bool isknown)
|
|
{
|
|
setValue(isknown, "isKnown", "sets", shortName);
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
setOptionsCache[shortName].isKnown = isknown;
|
|
}
|
|
|
|
void CardDatabaseSettings::ensureSetOptionsLoaded() const
|
|
{
|
|
if (setOptionsLoaded) {
|
|
return;
|
|
}
|
|
QSettings settings(getSettings());
|
|
settings.beginGroup("sets");
|
|
const QStringList groups = settings.childGroups();
|
|
for (const QString &group : groups) {
|
|
settings.beginGroup(group);
|
|
SetOptions &o = setOptionsCache[group];
|
|
o.sortKey = settings.value("sortKey", 0).toUInt();
|
|
o.enabled = settings.value("enabled", true).toBool();
|
|
o.isKnown = settings.value("isKnown", true).toBool();
|
|
settings.endGroup();
|
|
}
|
|
setOptionsLoaded = true;
|
|
}
|
|
|
|
unsigned int CardDatabaseSettings::getSortKey(QString shortName) const
|
|
{
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
return setOptionsCache.value(shortName).sortKey;
|
|
}
|
|
|
|
bool CardDatabaseSettings::isEnabled(QString shortName) const
|
|
{
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
return setOptionsCache.value(shortName).enabled;
|
|
}
|
|
|
|
bool CardDatabaseSettings::isKnown(QString shortName) const
|
|
{
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
return setOptionsCache.value(shortName).isKnown;
|
|
}
|
|
|
|
ICardSetPriorityController::SetOptions CardDatabaseSettings::getSetOptions(QString shortName) const
|
|
{
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
return setOptionsCache.value(shortName);
|
|
}
|
|
|
|
void CardDatabaseSettings::saveSets(const QVector<ICardSetPriorityController::SetSaveData> &data)
|
|
{
|
|
batchWrite([&](QSettings &s) {
|
|
s.beginGroup("sets");
|
|
for (const auto &entry : data) {
|
|
s.beginGroup(entry.shortName);
|
|
s.setValue("sortKey", entry.sortKey);
|
|
s.setValue("enabled", entry.enabled);
|
|
s.endGroup();
|
|
}
|
|
s.endGroup();
|
|
});
|
|
|
|
QMutexLocker lock(&setOptionsMutex);
|
|
ensureSetOptionsLoaded();
|
|
for (const auto &entry : data) {
|
|
SetOptions &o = setOptionsCache[entry.shortName];
|
|
o.sortKey = entry.sortKey;
|
|
o.enabled = entry.enabled;
|
|
}
|
|
} |