From 9a3988ea8d8628f3006ea7ea6e1be60d8b20d0b0 Mon Sep 17 00:00:00 2001 From: bobpan Date: Thu, 6 May 2021 11:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=89=E6=A0=85=E6=95=B0=E6=8D=AE=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/RasterSDG20/Raster.cpp | 52 +++++++++++++++++++++++++++++++++++--- src/RasterSDG20/Raster.h | 1 + 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/RasterSDG20/Raster.cpp b/src/RasterSDG20/Raster.cpp index c4c7fbb..4e11007 100644 --- a/src/RasterSDG20/Raster.cpp +++ b/src/RasterSDG20/Raster.cpp @@ -16,6 +16,7 @@ CRaster::CRaster(QString strPath) m_pThickness->setRasterST(m_pRasSt); } + CRaster::~CRaster() { delete m_pRasSt; @@ -23,6 +24,36 @@ CRaster::~CRaster() delete m_pThickness; } +void CRaster::saveDefaultParam() +{ + QJsonObject jsRaster = QJsonObject(); + QJsonObject Rasterobj_dev; + Rasterobj_dev.insert("beilv", QJsonValue(m_pRasSt->m_beilv)); + Rasterobj_dev.insert("basehight", QJsonValue(m_pRasSt->m_baseHight)); + Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//ÖÐÖµ + Rasterobj_dev.insert("maxsize", QJsonValue(m_pRasSt->m_maxsize)); + Rasterobj_dev.insert("lowNum", QJsonValue(m_pRasSt->m_lowNum)); + Rasterobj_dev.insert("beilv_bool", QJsonValue(m_pRasSt->m_bool_beilv)); + Rasterobj_dev.insert("basehight_bool", QJsonValue(m_pRasSt->m_bool_baseHight)); + Rasterobj_dev.insert("maxsize_bool", QJsonValue(m_pRasSt->m_bool_maxsize)); + Rasterobj_dev.insert("lowNum_bool", QJsonValue(m_pRasSt->m_bool_lowNum)); + Rasterobj_dev.insert("mid_value_bool", QJsonValue(m_pRasSt->m_bool_mid_value)); + jsRaster.insert("Raster", Rasterobj_dev); + + QJsonObject Rasterobj; + Rasterobj.insert("comName", QJsonValue(m_pRasCom->m_ComName)); + Rasterobj.insert("baute", QJsonValue(m_pRasCom->m_Baute)); + Rasterobj.insert("useRaster", QJsonValue(m_pRasCom->m_UseRaster)); + jsRaster.insert("COM", Rasterobj); + + + QFile saveFile(m_strPath); + saveFile.open(QIODevice::WriteOnly); + QJsonDocument saveDoc(jsRaster); + saveFile.write(saveDoc.toJson()); + saveFile.close(); +} + RasterST * CRaster::getRasterSt() const { return m_pRasSt; @@ -35,6 +66,7 @@ bool CRaster::readRasterJson() if (!loadFile.open(QIODevice::ReadOnly)) { qWarning("Couldn't open save file."); + saveDefaultParam(); return false; } QByteArray readData = loadFile.readAll(); @@ -70,7 +102,19 @@ bool CRaster::readRasterJson() bool CRaster::saveRasterJson(emTySaveJsonType emType) { - QJsonObject mObj; + QFile loadFile(m_strPath); + + if (!loadFile.open(QIODevice::ReadOnly)) { + + qWarning("Couldn't open save file."); + return false; + } + QByteArray readData = loadFile.readAll(); + QJsonDocument readDoc = QJsonDocument::fromJson(readData); + QJsonObject jsRaster = readDoc.object(); + if (jsRaster.isEmpty()) + jsRaster = QJsonObject(); + switch (emType) { case EMTYPE_RASTER:{ @@ -85,7 +129,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType) Rasterobj.insert("maxsize_bool", QJsonValue(m_pRasSt->m_bool_maxsize)); Rasterobj.insert("lowNum_bool", QJsonValue(m_pRasSt->m_bool_lowNum)); Rasterobj.insert("mid_value_bool", QJsonValue(m_pRasSt->m_bool_mid_value)); - mObj.insert("Raster", Rasterobj); + jsRaster.insert("Raster", Rasterobj); } break; case EMTYPE_COM:{ @@ -93,7 +137,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType) Rasterobj.insert("comName", QJsonValue(m_pRasCom->m_ComName)); Rasterobj.insert("baute", QJsonValue(m_pRasCom->m_Baute)); Rasterobj.insert("useRaster", QJsonValue(m_pRasCom->m_UseRaster)); - mObj.insert("COM", Rasterobj); + jsRaster.insert("COM", Rasterobj); } break; default: @@ -101,7 +145,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType) } QFile saveFile(m_strPath); saveFile.open(QIODevice::WriteOnly); - QJsonDocument saveDoc(mObj); + QJsonDocument saveDoc(jsRaster); saveFile.write(saveDoc.toJson()); saveFile.close(); return true; diff --git a/src/RasterSDG20/Raster.h b/src/RasterSDG20/Raster.h index 5a36276..37b0909 100644 --- a/src/RasterSDG20/Raster.h +++ b/src/RasterSDG20/Raster.h @@ -50,6 +50,7 @@ public: CRaster(QString strPath); ~CRaster(); + void saveDefaultParam(); public: double getThicknessValue() const; void addThicknessValue(double dValue);