891 lines
19 KiB
C++
891 lines
19 KiB
C++
#include "Config.h"
|
|
/*
|
|
* 配置类,主要用于读写配置信息,全部都采用全局静态函数
|
|
*/
|
|
|
|
|
|
|
|
|
|
QString Config::ConfigFile = "./config/inital.json";
|
|
|
|
|
|
Config::Config(QObject *parent) :
|
|
QObject(parent)
|
|
{
|
|
qInfo() << "Config Operation";
|
|
|
|
QDir *Dir = new QDir;
|
|
if(!Dir->exists("./Config"))
|
|
if(Dir->mkdir("./Config"))//如果文件夹不存在就新建
|
|
{
|
|
qInfo() << "create config dir";
|
|
}
|
|
delete Dir;
|
|
Dir = nullptr;
|
|
|
|
loadJson(ConfigFile);
|
|
|
|
}
|
|
|
|
Config::~Config()
|
|
{
|
|
|
|
}
|
|
|
|
void Config::loadJson(const QString& jsonFilename)
|
|
{
|
|
if (jsonFilename.isEmpty()) {
|
|
return;
|
|
}
|
|
|
|
qDebug() << "Loading " << jsonFilename;
|
|
|
|
QFile jsonFile(jsonFilename);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
qWarning() << "Unable to open file" << jsonFilename << jsonFile.errorString();
|
|
return;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qWarning() << jsonFilename << "Unable to open json document" << jsonParseError.errorString();
|
|
return;
|
|
}
|
|
|
|
ConfigJson = doc.object();
|
|
}
|
|
|
|
|
|
QJsonObject Config::getJsonObject(QString key)
|
|
{
|
|
QJsonObject obj;
|
|
|
|
QJsonValue Value = ConfigJson.value(key);
|
|
|
|
if(Value.isObject())
|
|
{
|
|
obj = Value.toObject();
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
void Config::setJsonObject(QString key,QJsonValue value)
|
|
{
|
|
ConfigJson[key] = value;
|
|
|
|
QFile file(ConfigFile);
|
|
if(!file.open(QIODevice::ReadWrite|QFile::Truncate)) {
|
|
qDebug() << "File open error";
|
|
}
|
|
|
|
QJsonDocument doc(QJsonDocument::fromJson(file.readAll()));
|
|
doc.setObject(ConfigJson);
|
|
|
|
|
|
file.write(doc.toJson());
|
|
file.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
QString Config::getCommandFile()
|
|
{
|
|
QJsonObject obj = getJsonObject("commandfile");
|
|
|
|
QString file = obj.value("path").toString();
|
|
|
|
return file;
|
|
}
|
|
|
|
void Config::setCommandFile(QString file)
|
|
{
|
|
QJsonObject obj;
|
|
obj["path"] = file;
|
|
|
|
setJsonObject("commandfile",obj);
|
|
}
|
|
|
|
QList<QMap<QVariant,QVariant>> Config::getConnet(void)
|
|
{
|
|
QList<QMap<QVariant,QVariant>> soketlist;
|
|
|
|
/*
|
|
* qmap:
|
|
*
|
|
* "name" : name
|
|
* "ipaddr" : ip
|
|
* "port" : port
|
|
*
|
|
*/
|
|
|
|
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return soketlist;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
return soketlist;
|
|
}
|
|
|
|
QJsonArray sockets;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("sockets"))
|
|
{
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
else
|
|
{
|
|
QJsonArray sock;
|
|
|
|
root.insert("sockets",sock);
|
|
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (QJsonValue item, sockets) {
|
|
QJsonObject sock = item.toObject();
|
|
|
|
QMap<QVariant,QVariant> s;
|
|
|
|
s.insert("name",sock.value("name").toString());
|
|
s.insert("ipaddr",sock.value("ipaddr").toString());
|
|
s.insert("port",sock.value("port").toString());
|
|
|
|
soketlist.append(s);
|
|
|
|
}
|
|
|
|
return soketlist;
|
|
|
|
}
|
|
|
|
bool Config::insertConnet(QVariant name, QVariant ipaddr, QVariant port)
|
|
{
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
QFile file(ConfigFile);
|
|
if(!file.exists())
|
|
{
|
|
bool ok = file.open(QIODevice::ReadWrite);
|
|
if(ok)
|
|
{
|
|
file.write("{}");
|
|
file.close();
|
|
}
|
|
}
|
|
|
|
QJsonObject info;
|
|
|
|
info["name"] = name.toString();
|
|
info["ipaddr"] = ipaddr.toString();
|
|
info["port"] = port.toString();
|
|
|
|
|
|
//读取现有文档,获取obj
|
|
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qDebug() << "error" << jsonParseError.errorString();
|
|
return false;
|
|
}
|
|
|
|
QJsonArray sockets;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("sockets"))
|
|
{
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
else
|
|
{
|
|
QJsonArray sock;
|
|
|
|
root.insert("sockets",sock);
|
|
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
|
|
bool isfound = false;
|
|
|
|
foreach (QJsonValue item, sockets) {
|
|
QJsonObject sock = item.toObject();
|
|
|
|
if((sock.value("ipaddr") == info.value("ipaddr")) &&
|
|
(sock.value("port") == info.value("port")))
|
|
{
|
|
isfound = true;
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isfound == false)
|
|
{
|
|
sockets.append(info);
|
|
}
|
|
|
|
root["sockets"] = sockets;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return !isfound;
|
|
}
|
|
|
|
bool Config::deleteConnet(QVariant ipaddr, QVariant port)
|
|
{
|
|
bool flag = false;
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
QJsonObject info;
|
|
|
|
info["ipaddr"] = ipaddr.toString();
|
|
info["port"] = port.toString();
|
|
|
|
|
|
//读取现有文档,获取obj
|
|
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
return false;
|
|
}
|
|
|
|
QJsonArray sockets;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("sockets"))
|
|
{
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
else
|
|
{
|
|
QJsonArray sock;
|
|
|
|
root.insert("sockets",sock);
|
|
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
|
|
QJsonArray after;
|
|
|
|
foreach (QJsonValue item, sockets) {
|
|
QJsonObject sock = item.toObject();
|
|
|
|
if((sock.value("ipaddr") == info.value("ipaddr")) &&
|
|
(sock.value("port") == info.value("port")))
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
after.append(item);
|
|
}
|
|
}
|
|
|
|
root["sockets"] = after;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return flag;
|
|
|
|
}
|
|
|
|
bool Config::modifyConnet(QVariant name, QVariant ipaddr, QVariant port, QVariant newname, QVariant newipaddr, QVariant newport)
|
|
{
|
|
bool flag = false;
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
QJsonObject info;
|
|
info["name"] = name.toString();
|
|
info["ipaddr"] = ipaddr.toString();
|
|
info["port"] = port.toString();
|
|
|
|
QJsonObject newinfo;
|
|
newinfo["name"] = newname.toString();
|
|
newinfo["ipaddr"] = newipaddr.toString();
|
|
newinfo["port"] = newport.toString();
|
|
|
|
if((info.value("ipaddr") == newinfo.value("ipaddr")) &&
|
|
(info.value("port") == newinfo.value("port")) &&
|
|
(info.value("name") == newinfo.value("name")) )
|
|
{
|
|
flag = true;
|
|
qDebug() << flag;
|
|
return flag;
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
return false;
|
|
}
|
|
|
|
QJsonArray sockets;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("sockets"))
|
|
{
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
else
|
|
{
|
|
QJsonArray sock;
|
|
|
|
root.insert("sockets",sock);
|
|
|
|
sockets = root.value("sockets").toArray();
|
|
}
|
|
|
|
QJsonArray after;
|
|
|
|
if(sockets.contains(newinfo))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
foreach (QJsonValue item, sockets) {
|
|
QJsonObject sock = item.toObject();
|
|
|
|
if((sock.value("ipaddr") == info.value("ipaddr")) &&
|
|
(sock.value("port") == info.value("port")))
|
|
{
|
|
flag = true;
|
|
after.append(newinfo);
|
|
}
|
|
else
|
|
{
|
|
after.append(item);
|
|
}
|
|
}
|
|
|
|
root["sockets"] = after;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
if(flag)
|
|
{
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
}
|
|
|
|
return flag;
|
|
|
|
}
|
|
|
|
|
|
QVariant Config::getSetting(QVariant key , bool *flag)
|
|
{
|
|
QVariant value = 0;
|
|
|
|
bool ok = false;
|
|
|
|
if(flag == nullptr)
|
|
{
|
|
flag = &ok;
|
|
}
|
|
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
*flag = false;
|
|
return value;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qDebug() << "error" << jsonParseError.errorString();
|
|
*flag = false;
|
|
return value;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("settings"))
|
|
{
|
|
settings = root.value("settings").toObject();
|
|
|
|
if(settings.contains(key.toString()))
|
|
{
|
|
value = settings.value(key.toString());
|
|
*flag = true;
|
|
}
|
|
else
|
|
{
|
|
*flag = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
*flag = false;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
|
|
|
|
bool Config::insertSetting(QVariant key, QVariant value)
|
|
{
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
QFile file(ConfigFile);
|
|
if(!file.exists())
|
|
{
|
|
bool ok = file.open(QIODevice::ReadWrite);
|
|
if(ok)
|
|
{
|
|
file.write("{}");
|
|
file.close();
|
|
}
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qDebug() << "error" << jsonParseError.errorString();
|
|
return false;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("settings"))
|
|
{
|
|
settings = root.value("settings").toObject();
|
|
}
|
|
else
|
|
{
|
|
QJsonObject setting;
|
|
|
|
root.insert("settings",setting);
|
|
|
|
settings = root.value("settings").toObject();
|
|
}
|
|
|
|
//修改
|
|
settings[key.toString()] = value.toJsonValue();
|
|
|
|
root["settings"] = settings;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return true;
|
|
}
|
|
|
|
bool Config::deleteSetting(QVariant key)
|
|
{
|
|
bool flag = false;
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
return false;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains("settings"))
|
|
{
|
|
settings = root.value("settings").toObject();
|
|
}
|
|
else
|
|
{
|
|
//如果没有找到设置的内容就返回
|
|
return false;
|
|
}
|
|
|
|
if(settings.contains(key.toString()))
|
|
{
|
|
settings.remove(key.toString());
|
|
flag = true;
|
|
}
|
|
|
|
root["settings"] = settings;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return flag;
|
|
}
|
|
|
|
QVariant Config::get(QVariant group, QVariant key , bool *flag)
|
|
{
|
|
QVariant value = 0;
|
|
|
|
bool ok = false;
|
|
|
|
if(flag == nullptr)
|
|
{
|
|
flag = &ok;
|
|
}
|
|
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
*flag = false;
|
|
return value;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qDebug() << "error" << jsonParseError.errorString();
|
|
*flag = false;
|
|
return value;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains(group.toString()))
|
|
{
|
|
settings = root.value(group.toString()).toObject();
|
|
|
|
if(settings.contains(key.toString()))
|
|
{
|
|
value = settings.value(key.toString());
|
|
*flag = true;
|
|
}
|
|
else
|
|
{
|
|
*flag = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
*flag = false;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
bool Config::insert(QVariant group, QVariant key, QVariant value)
|
|
{
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
QFile file(ConfigFile);
|
|
if(!file.exists())
|
|
{
|
|
bool ok = file.open(QIODevice::ReadWrite);
|
|
if(ok)
|
|
{
|
|
file.write("{}");
|
|
file.close();
|
|
}
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
qDebug() << "error" << jsonParseError.errorString();
|
|
return false;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains(group.toString()))
|
|
{
|
|
settings = root.value(group.toString()).toObject();
|
|
}
|
|
else
|
|
{
|
|
QJsonObject setting;
|
|
|
|
root.insert(group.toString(),setting);
|
|
|
|
settings = root.value(group.toString()).toObject();
|
|
}
|
|
|
|
//修改
|
|
settings[key.toString()] = value.toJsonValue();
|
|
|
|
root[group.toString()] = settings;
|
|
|
|
doc.setObject(root);
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return true;
|
|
}
|
|
|
|
bool Config::remove(QVariant group, QVariant key)
|
|
{
|
|
bool flag = false;
|
|
//构建日志目录
|
|
QDir *dir = new QDir;
|
|
if(!dir->exists("./config"))
|
|
{
|
|
dir->mkdir("./config");//如果文件夹不存在就新建
|
|
}
|
|
|
|
//读取现有文档,获取obj
|
|
QFile jsonFile(ConfigFile);
|
|
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
|
return false;
|
|
}
|
|
|
|
QByteArray bytes = jsonFile.readAll();
|
|
|
|
jsonFile.close();
|
|
QJsonParseError jsonParseError;
|
|
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
|
|
if (jsonParseError.error != QJsonParseError::NoError) {
|
|
return false;
|
|
}
|
|
|
|
QJsonObject settings;
|
|
QJsonObject root = doc.object();
|
|
|
|
if(root.contains(group.toString()))
|
|
{
|
|
settings = root.value(group.toString()).toObject();
|
|
}
|
|
else
|
|
{
|
|
//如果没有找到设置的内容就返回
|
|
return false;
|
|
}
|
|
|
|
if(settings.contains(key.toString()))
|
|
{
|
|
settings.remove(key.toString());
|
|
flag = true;
|
|
}
|
|
|
|
root[group.toString()] = settings;
|
|
|
|
doc.setObject(root);
|
|
|
|
|
|
QFile savefile(ConfigFile);
|
|
if(!savefile.open(QIODevice::WriteOnly|QIODevice::Truncate)) {
|
|
qDebug() << "file open error";
|
|
}
|
|
|
|
savefile.write(doc.toJson());
|
|
savefile.close();
|
|
|
|
return flag;
|
|
}
|
|
|
|
|
|
|
|
QString Config::Bin2Hex(QByteArray raw)
|
|
{
|
|
//原始数据转16进制代码
|
|
QString str;
|
|
QString data = raw.toHex().data();//以十六进制显示
|
|
data = data.toUpper ();//转换为大写
|
|
for(int i = 0;i<data.length ();i+=2)//填加空格
|
|
{
|
|
QString st = data.mid (i,2);
|
|
str += st;
|
|
str += " ";
|
|
}
|
|
return str;
|
|
}
|
|
|
|
QStringList Config::getFiles(const QString &filePath,const QString &fileSuffix)
|
|
{
|
|
QStringList list;
|
|
list.clear();
|
|
|
|
QDir Dir(filePath); //查看工作路径是否存在
|
|
if(!Dir.exists()){ return list;} //如果文件夹不存在则返回
|
|
Dir.setFilter(QDir::Files); //设置过滤器只查看文件
|
|
QFileInfoList filelist = Dir.entryInfoList(QDir::Files); //获取所有文件
|
|
|
|
foreach (QFileInfo file, filelist) //遍历只加载.fileSuffix到文件列表
|
|
{
|
|
|
|
if(file.fileName().split(".").back() == fileSuffix) //判断进行再次确认是.fileSuffix
|
|
{
|
|
list.push_back(file.absoluteFilePath());
|
|
}
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|