#include "headers/appsettings.h" AppSettings * pGlobalAppSettings = nullptr; AppSettings::AppSettings(QObject* parent) :QObject(parent) { qDebug("+----- AppSettings konstruktor -----"); pGlobalAppSettings = this; QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); qDebug() << "+----- Settings Path:" << path; this->settingsManager = new QSettings(path+"/fannyapp/settings.ini", QSettings::IniFormat); if(loadSetting("init") == "false"){ this->writeSetting("init", 0); } if(loadSetting("grade") == "false"){ this->writeSetting("grade", 5); } this->filtersFile = new QFile(path + "/fannyapp/filters.json"); //QList filters = {{"5", "d"}, {"6", "c"}, {"11", ""}}; //writeFilters(filters); qDebug() << readFilters(); } QString AppSettings::loadSetting(const QString &key) { this->settingsManager->beginGroup("AppSettings"); QString value = this->settingsManager->value(key , false).toString(); this->settingsManager->endGroup(); return(value); } void AppSettings::writeSetting(const QString &key, const QVariant &variant) { this->settingsManager->beginGroup("AppSettings"); this->settingsManager->setValue(key , variant); this->settingsManager->endGroup(); } QList AppSettings::readFilters() { // list to be returned QList filtersList; this->filtersFile->open(QFile::ReadOnly | QFile::Text); QString jsonString = this->filtersFile->readAll(); this->filtersFile->close(); qDebug() << jsonString; QJsonDocument jsonFilters = QJsonDocument::fromJson(jsonString.toUtf8()); // array with all filters in it QJsonArray filtersArray = jsonFilters.array(); foreach(const QJsonValue & value, filtersArray){ // array of a single filter QJsonArray filterArray = value.toArray(); // extract values from array QString gradeString = filterArray[0].toString(); QString letterString = filterArray[1].toString(); filtersList.append({gradeString, letterString}); } return(filtersList); } void AppSettings::writeFilters(QList list) { // string to write to file QString jsonString; QJsonArray filtersArray; foreach(QStringList filter, list){ QJsonArray filterArray; filterArray.append(filter[0]); filterArray.append(filter[1]); filtersArray.append(filterArray); } QJsonDocument filtersDoc(filtersArray); qDebug() << filtersDoc.toJson(); this->filtersFile->open(QIODevice::ReadWrite); this->filtersFile->resize(0); this->filtersFile->write(filtersDoc.toJson()); this->filtersFile->close(); } QStringList AppSettings::readFiltersQml() { QStringList filtersList; foreach(QStringList filterList, this->readFilters()){ filtersList.append(filterList[0]+"|"+filterList[1]); } return(filtersList); } void AppSettings::writeFiltersQml(QStringList) { } AppSettings::~AppSettings() { delete settingsManager; }