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);