85 lines
2.3 KiB
C++
85 lines
2.3 KiB
C++
|
|
#include "settings.h"
|
||
|
|
|
||
|
|
#include <QCoreApplication>
|
||
|
|
#include <QDir>
|
||
|
|
#include <QFile>
|
||
|
|
|
||
|
|
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 "false";
|
||
|
|
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);
|
||
|
|
}
|