1 Star 0 Fork 0

yuanerhh/GenUML

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
GlobalConfig.cpp 2.52 KB
一键复制 编辑 原始数据 按行查看 历史
yuanerhh 提交于 2024-11-05 03:00 . 使用puml生成类图。
#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();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yuanerhh/GenUML.git
[email protected]:yuanerhh/GenUML.git
yuanerhh
GenUML
GenUML
master

搜索帮助