代码拉取完成,页面将自动刷新
#include "GlobalConfig.h"
#include <QJsonArray>
#include <QJsonDocument>
#include <QFile>
#include <QDebug>
#include <QDataStream>
#define CONFIGT_FILE_PATH "./GenUML.config"
CGlobalConfig* CGlobalConfig::getInstance()
{
static CGlobalConfig instance;
return &instance;
}
CGlobalConfig::CGlobalConfig()
{
// 打开 JSON 文件
QFile file(CONFIGT_FILE_PATH);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
return;
}
// 读取文件内容并解析为 QJsonDocument
QByteArray fileData = file.readAll();
QJsonDocument jsonDoc = QJsonDocument::fromJson(fileData);
// 检查 JSON 文档是否有效
if (jsonDoc.isNull() || !jsonDoc.isObject()) {
return;
}
// 获取根对象
m_jsonObj = jsonDoc.object();
QJsonArray filterArray = m_jsonObj["FilterPath"].toArray();
foreach (const QJsonValue &item, filterArray)
{
m_vecFilterPath.append(item.toString());
}
QJsonArray includeArray = m_jsonObj["IncludePath"].toArray();
foreach (const QJsonValue &item, includeArray)
{
m_vecIncludePath.append(item.toString());
}
file.close();
}
CGlobalConfig::~CGlobalConfig()
{
save();
}
QVector<QString> CGlobalConfig::getFilterPath() const
{
return m_vecFilterPath;
}
void CGlobalConfig::setFilterPath(const QVector<QString>& vecPath)
{
m_vecFilterPath = vecPath;
save();
}
QVector<QString> CGlobalConfig::getIncludePath() const
{
return m_vecIncludePath;
}
void CGlobalConfig::setIncludePath(const QVector<QString>& vecPath)
{
m_vecIncludePath = vecPath;
save();
}
void CGlobalConfig::setConfig(const QString& name, const QVariant& val)
{
m_jsonObj[name] = QJsonValue::fromVariant(val);
save();
}
QVariant CGlobalConfig::getConfig(const QString& name) const
{
return m_jsonObj[name].toVariant();
}
void CGlobalConfig::save()
{
QJsonArray filterArray;
foreach (const auto& item, m_vecFilterPath)
{
filterArray.append(item);
}
QJsonArray includeArray;
foreach (const auto& item, m_vecIncludePath)
{
includeArray.append(item);
}
m_jsonObj["FilterPath"] = filterArray;
m_jsonObj["IncludePath"] = includeArray;
// 将 QJsonObject 转换为 QJsonDocument
QJsonDocument jsonDoc(m_jsonObj);
// 打开文件写入 JSON 数据
QFile file(CONFIGT_FILE_PATH);
if (!file.open(QIODevice::WriteOnly)) {
qWarning() << "Open file error" << file.errorString();
return;
}
file.write(jsonDoc.toJson());
file.close();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。