#include "fileopenthread.h" #include #include //#include "CallManage.h" #include #include extern QString g_prjname; void FileOpenThread::Open(QString fileFull) { QString strPrjname = ""; QJsonArray wellsArray; QJsonParseError jsonError; // 文件 QFile file(fileFull); if(file.open(QIODevice::ReadOnly)) { // 解析JSON QJsonDocument document = QJsonDocument::fromJson(file.readAll(), &jsonError); if (!document.isNull() && (jsonError.error == QJsonParseError::NoError)) { if (document.isObject()) { QJsonObject object = document.object(); // if (object.contains("prjname")) { QJsonValue value = object.value("prjname"); if (value.isString()) { strPrjname = value.toString(); qDebug() << "prjname:" << strPrjname; if(strPrjname != g_prjname) { file.close(); qDebug() << "JSON 模板文件项目名称与当前项目不一致!"; return; } } } // if (object.contains("wells")) { QJsonValue value = object.value("wells"); if (value.isArray()) { wellsArray = value.toArray(); qDebug() << "wellsArray number:" << QString::number(wellsArray.size()); //展示所有井 DisplayWells(wellsArray); } } } } // file.close(); qDebug() << "JSON 模板文件读取成功!"; } else { qWarning() << "JSON 模板文件打开失败:" << file.errorString(); } } void FileOpenThread::DisplayWells(QJsonArray wellsArray) { QMap mapWells; int id = 0; int iCount = wellsArray.size(); for(int i=0; is_NewWell(strWellName); emit sig_NewWell(strWellName); } } // if (wellObjInfo.contains("formTracks")) { QJsonValue value = wellObjInfo.value("formTracks"); if (value.isArray()) { tracksArray = value.toArray(); qDebug() << "tracksArray number:" << QString::number(tracksArray.size()); //展示所有道 DisplayTracks(tracksArray); } } } //展示所有道 void FileOpenThread::DisplayTracks(QJsonArray tracksArray) { QMap mapTracks; int id = 0; int iCount = tracksArray.size(); for(int i=0; igetInstanceCallManage()->sig_NewTrack_No_Line(strWellName, strTrackName);//新建空白道,没有曲线 emit sig_NewTrack_No_Line(strWellName, strTrackName);//新建空白道,没有曲线 if(id>0) { //改变井宽 emit sig_NewTrackChangeWidth(strWellName); //mainWindowCurve->s_NewTrackChangeWidth(strWellName); } // if (trackObjInfo.contains("formInfos")) { QJsonValue value = trackObjInfo.value("formInfos"); if (value.isArray()) { linesArray = value.toArray(); qDebug() << "linesArray number:" << QString::number(linesArray.size()); //展示所有曲线 DisplayLines(linesArray); } } } //展示所有曲线 void FileOpenThread::DisplayLines(QJsonArray linesArray) { QMap mapLines; int id = 0; int iCount = linesArray.size(); for(int i=0; isig_AddLine(strSlfName, strWellName, strTrackName, strLineName); // emit mainWindow->getInstanceCallManage()->sig_AddLine_Property(strSlfName, strWellName, strTrackName, strLineName, // newLeftScale, newRightScale, lineColor, width, lineStyle); emit sig_AddLine_Property(strSlfName, strWellName, strTrackName, strLineName, newLeftScale, newRightScale, lineColor, width, lineStyle); } }