#include "settings.h" #include #include #include Settings& Settings::instance() { static Settings instance; return instance; } Settings::Settings() { m_settingsFile = QDir::cleanPath(QCoreApplication::applicationDirPath() + "/../conf/config.ini"); QFile file(m_settingsFile); if (file.open(QIODevice::ReadWrite)) { m_isVaildSettingsFile = true; m_settings = new QSettings(m_settingsFile, QSettings::IniFormat); } else { m_isVaildSettingsFile = false; } } Settings::~Settings() { if (m_isVaildSettingsFile) { delete m_settings; } } QVariant Settings::getDefaultValue(const QString& group, const QString& name) { if(group == "Log" && name == "logFile") return QDir::cleanPath(QCoreApplication::applicationDirPath() + "/../logs/EventConfigurator.log"); else if(group == "Log" && name == "pattern") return "[%{time yyyyMMdd h:mm:ss.zzz ttt} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{file}:%{line} - %{message}"; else if(group == "Log" && name == "level") return "DEBUG"; else if(group == "Log" && name == "maxSize") return 10485760; else if(group == "Log" && name == "backups") return 5; else if(group == "Log" && name == "consoleOutput") return "true"; else if(group == "Log" && name == "fileOutput") return "true"; else return QVariant(); } void Settings::setValue(const QString& group, const QString& name, const QVariant& value) { if(!m_isVaildSettingsFile) return; m_settings->beginGroup(group); m_settings->setValue(name, value); m_settings->endGroup(); } QVariant Settings::value(const QString& group, const QString& name) { QVariant defaultVaule = getDefaultValue(group, name); if(!m_isVaildSettingsFile) return defaultVaule; QVariant value = m_settings->value(group + "/" + name, defaultVaule); return value; } void Settings::clearValue(const QString& group, const QString& name) { m_settings->beginGroup(group); m_settings->remove(name); m_settings->endGroup(); } bool Settings::contains(const QString& group, const QString& name) { return m_settings->contains(group + "/" + name); }