diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index bab2f05..268be9b 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -299,7 +299,7 @@ void PropertyWidget::changedCorePhysicsProperty(QtProperty *qtProperty, const QV this->m_tdCorePhysics->setCpLineWidth(temp); QVariantList listCond; - emit CallManage::getInstance()->sig_changeCorePhysicsProperty(listCond); +// emit CallManage::getInstance()->sig_changeCorePhysicsProperty(listCond); } else if("颜色" == m_propertyData[qtProperty]) { @@ -420,28 +420,28 @@ void PropertyWidget::changedCorePhysicsProperty(QtProperty *qtProperty, const QV else if("序号" == m_propertyData[qtProperty]) { int temp = variant.toInt(); - this->m_formInfo->m_cp_order = temp; +// this->m_formInfo->m_cp_order = temp; this->m_tdCorePhysics->setCpOrder(temp); this->m_tdCorePhysics->mPlot->saveToSLFCorePhysics(); } else if("深度" == m_propertyData[qtProperty]) { double temp = variant.toDouble(); - this->m_formInfo->m_cp_depth = temp; +// this->m_formInfo->m_cp_depth = temp; this->m_tdCorePhysics->setCpDepth(temp); this->m_tdCorePhysics->mPlot->saveToSLFCorePhysics(); } else if("校正深度" == m_propertyData[qtProperty]) { double temp = variant.toDouble(); - this->m_formInfo->m_cp_corrDepth = temp; +// this->m_formInfo->m_cp_corrDepth = temp; this->m_tdCorePhysics->setRange(temp,temp,this->m_tdCorePhysics->getCpCoreValue()); this->m_tdCorePhysics->mPlot->saveToSLFCorePhysics(); } else if("数值" == m_propertyData[qtProperty]) { double temp = variant.toDouble(); - this->m_formInfo->m_cp_coreValue = temp; +// this->m_formInfo->m_cp_coreValue = temp; this->m_tdCorePhysics->setCpCoreValue(temp); this->m_tdCorePhysics->mPlot->saveToSLFCorePhysics(); } diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 85f4367..cfafd21 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -438,6 +438,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray) // 岩心分析 displayCorePhysics(lineObjInfo); } + else if (strLineName == "IMAGE_DATA") + { + // 岩心照片 + displayImageData(lineObjInfo); + } } else if (strType == "JiegutextObject") { @@ -568,10 +573,257 @@ void FormDraw::displayCorePhysics(QJsonObject jsonObject) int value = jsonObject.value("lineStyle").toInt(); listOtherProperty.append(QString::number(value)); } + // 左刻度 + if (jsonObject.contains("leftScale")) + { + int value = jsonObject.value("leftScale").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 右刻度 + if (jsonObject.contains("rightScale")) + { + int value = jsonObject.value("rightScale").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 等分刻度数或自定序列 + if (jsonObject.contains("scaleDivisionsOrCustom")) + { + int value = jsonObject.value("scaleDivisionsOrCustom").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 刻度类型 + if (jsonObject.contains("scaleType")) + { + int value = jsonObject.value("scaleType").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 显示单位 + if (jsonObject.contains("Unit")) + { + QJsonValue value = jsonObject.value("Unit"); + listOtherProperty.append(value.toString()); + } + // 字体 + if (jsonObject.contains("curveNameFont")) + { + QJsonValue value = jsonObject.value("curveNameFont"); + listOtherProperty.append(value.toString()); + } + // 曲线单位 + if (jsonObject.contains("strUnitFont")) + { + QJsonValue value = jsonObject.value("strUnitFont"); + listOtherProperty.append(value.toString()); + } + // 曲线刻度 + if (jsonObject.contains("curveScale")) + { + QJsonValue value = jsonObject.value("curveScale"); + listOtherProperty.append(value.toString()); + } + // 杆状 + if (jsonObject.contains("drawAsBar")) + { + bool value = jsonObject.value("drawAsBar").toBool(); + if(value) + { + listOtherProperty.append("1"); + } + else + { + listOtherProperty.append("0"); + } + } + // 左界 + if (jsonObject.contains("leftBoundary")) + { + bool value = jsonObject.value("leftBoundary").toBool(); + if(value) + { + listOtherProperty.append("1"); + } + else + { + listOtherProperty.append("0"); + } + } + // 不绘零等无效值 + if (jsonObject.contains("skipZeroInvalidValues")) + { + bool value = jsonObject.value("skipZeroInvalidValues").toBool(); + if(value) + { + listOtherProperty.append("1"); + } + else + { + listOtherProperty.append("0"); + } + } + // 绘制包络线 + if (jsonObject.contains("drawEnvelope")) + { + bool value = jsonObject.value("drawEnvelope").toBool(); + if(value) + { + listOtherProperty.append("1"); + } + else + { + listOtherProperty.append("0"); + } + } + // 点状 + if (jsonObject.contains("drawAsDot")) + { + bool value = jsonObject.value("drawAsDot").toBool(); + if(value) + { + listOtherProperty.append("1"); + } + else + { + listOtherProperty.append("0"); + } + } + // 符号类型 + if (jsonObject.contains("symbolType")) + { + int value = jsonObject.value("symbolType").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 边框颜色 + if (jsonObject.contains("symbolBorderColor")) + { + QJsonValue value = jsonObject.value("symbolBorderColor"); + listOtherProperty.append(value.toString()); + } + // 大小 + if (jsonObject.contains("symbolSize")) + { + int value = jsonObject.value("symbolSize").toInt(); + listOtherProperty.append(QString::number(value)); + } + // 填充颜色 + if (jsonObject.contains("symbolFillColor")) + { + QJsonValue value = jsonObject.value("symbolFillColor"); + listOtherProperty.append(value.toString()); + } + // 字段名称 + if (jsonObject.contains("fieldName")) + { + int value = jsonObject.value("fieldName").toInt(); + listOtherProperty.append(QString::number(value)); + } this->addTableLine(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, strLineName, listOtherProperty); } +void FormDraw::displayImageData(QJsonObject lineObjInfo) +{ + QString strSlfName = ""; + QString strWellName = ""; + QString strLineName = ""; + QString strAliasName = "";//显示名称 + QFont curveNameFont("微软雅黑", 10); // 名称字体 + QColor lineColor = QColor(0, 0, 0);//颜色 + + if (lineObjInfo.contains("SlfName")) + { + QJsonValue value = lineObjInfo.value("SlfName"); + if (value.isString()) { + strSlfName = value.toString(); + //qDebug() << "SlfName:" << strSlfName; + + // + QString slffilename = QString(""); + int ind = strSlfName.lastIndexOf('\\'); + int ind2 = strSlfName.lastIndexOf('/'); + if (ind2 > ind) ind = ind2; + if (ind > -1) { + slffilename = strSlfName.mid(ind + 1); + strSlfName = slffilename; + } + } + } + if (lineObjInfo.contains("WellName")) + { + QJsonValue value = lineObjInfo.value("WellName"); + if (value.isString()) { + strWellName = value.toString(); + //qDebug() << "WellName:" << strWellName; + } + } + if (lineObjInfo.contains("LineName")) + { + QJsonValue value = lineObjInfo.value("LineName"); + if (value.isString()) { + strLineName = value.toString(); + //qDebug() << "LineName:" << strLineName; + } + } + if (lineObjInfo.contains("AliasName")) + { + QJsonValue value = lineObjInfo.value("AliasName"); + if (value.isString()) { + strAliasName = value.toString(); + //qDebug() << "strAliasName:" << strAliasName; + } + } + //字体 + if (lineObjInfo.contains("curveNameFont")) + { + QJsonValue value = lineObjInfo.value("curveNameFont"); + if (value.isString()) { + curveNameFont.fromString(value.toString()); + //qDebug() << "strUnit:" << strUnit; + } + } + // + if (lineObjInfo.contains("lineColor")) + { + lineColor.setNamedColor(lineObjInfo.value("lineColor").toString()); + } + //垂向绘制 + bool bVerticaDrawing = false; + if (lineObjInfo.contains("VerticaDrawing")) + { + QJsonValue value = lineObjInfo.value("VerticaDrawing"); + if (value.isBool()) { + bVerticaDrawing = value.toBool(); + } + } + // 旋转角度 + int nRotationAngle = 0; + if (lineObjInfo.contains("RotationAngle")) + { + QJsonValue value = lineObjInfo.value("RotationAngle"); + if (value.isDouble()) { + nRotationAngle = value.toInt(); + } + } + QString folderPath = GetLogdataPath(); + folderPath = folderPath + g_prjname; + strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName; + + QStringList listOtherProperty; + listOtherProperty.append(strAliasName);//别名 + listOtherProperty.append(lineColor.name());//名称颜色 + listOtherProperty.append(curveNameFont.toString());//名称字体 + if(bVerticaDrawing)//垂向绘制 + { + listOtherProperty.append("VerticaDrawing"); + } + else{ + listOtherProperty.append("0"); + } + listOtherProperty.append(QString::number(nRotationAngle));//旋转角度 + + this->addTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, listOtherProperty); +} + + //表格:固井结论等 void FormDraw::DisplayTable_One(QJsonObject lineObjInfo) { @@ -5249,7 +5501,8 @@ void FormDraw::initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString double width=2; QString strScaleType = ""; //道-对象 - m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "tableObject");//yanxinImageObject + m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, + m_RightVal, m_LeftVal, strScaleType, "tableObject", stringList);//yanxinImageObject } bool FormDraw::LoadFromIMAGE_SLF(QMyCustomPlot *widget, QString strSlfName, QString strLineName) diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index 48148b3..df788ec 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -64,6 +64,9 @@ public: void DisplayDepth_One(QJsonObject lineObjInfo); // 岩心分析 void displayCorePhysics(QJsonObject lineObjInfo); + // 岩心照片 + void displayImageData(QJsonObject lineObjInfo); + //表格:固井结论等 void DisplayTable_One(QJsonObject lineObjInfo); diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 0b1abb5..4e2c08e 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -331,34 +331,42 @@ QJsonObject FormInfo::makeJson() rootObj["sdMinorTickLineLength"] = m_sdMinorTickLineLength; // 次刻度线长度 rootObj["sdMinorTickLineWidth"] = m_sdMinorTickLineWidth; // 次刻度线宽度 } - else if (m_strType == "tableObject" && m_strLineName == "CORE_PHYSICS") + else if (m_strLineName == "CORE_PHYSICS") { rootObj["headHeight"] = m_headHeight; // 例区高度 rootObj["lineWidth"] = m_cp_lineWidth; // 线宽 rootObj["lineColor"] = m_cp_lineColor.name(); // 线条颜色 rootObj["lineStyle"] = m_cp_lineStyle; // 线型 - rootObj["drawAsBar"] = m_cp_drawAsBar = true; // 杆状 - rootObj["leftBoundary"] = m_cp_leftBoundary = true; // 左界 - rootObj["skipZeroInvalidValues"] = m_cp_skipZeroInvalidValues = false; // 不绘零等无效值 - rootObj["drawEnvelope"] = m_cp_drawEnvelope = false; // 绘制包络线 - rootObj["drawAsDot"] = m_cp_drawAsDot = false; // 点状 - rootObj["symbolType"] = m_cp_symbolType = 0; // 符号类型 - rootObj["symbolBorderColor"] = m_cp_symbolBorderColor.name(); // 边框颜色 - rootObj["symbolSize"] = m_cp_symbolSize = 3; // 大小 - rootObj["symbolFillColor"] = m_cp_symbolFillColor.name(); // 填充颜色 - rootObj["order"] = m_cp_order; // 序号 - rootObj["depth"] = m_cp_depth; // 深度 - rootObj["corrDepth"] = m_cp_corrDepth; // 校正深度 - rootObj["coreValue"] = m_cp_coreValue; // 数值 - rootObj["leftScale"] = m_cp_leftScale = 0; // 左刻度 - rootObj["rightScale"] = m_cp_rightScale = 100; // 右刻度 - rootObj["scaleDivisionsOrCustom"] = m_cp_scaleDivisionsOrCustom = 2; // 等分刻度数或自定序列 - rootObj["scaleType"] = m_cp_scaleType = 0; // 刻度类型 - rootObj["curveUnit"] = m_cp_curveUnit.toString(); // 曲线单位 + rootObj["leftScale"] = m_cp_leftScale; // 左刻度 + rootObj["rightScale"] = m_cp_rightScale; // 右刻度 + rootObj["scaleDivisionsOrCustom"] = m_cp_scaleDivisionsOrCustom; // 等分刻度数或自定序列 + rootObj["scaleType"] = m_cp_scaleType; // 刻度类型 + rootObj["curveNameFont"] = m_curveNameFont.toString(); // 字体 + rootObj["strUnitFont"] = m_strUnitFont.toString(); // 曲线单位 rootObj["curveScale"] = m_cp_curveScale.toString(); // 曲线刻度 + rootObj["drawAsBar"] = m_cp_drawAsBar; // 杆状 + rootObj["leftBoundary"] = m_cp_leftBoundary; // 左界 + rootObj["skipZeroInvalidValues"] = m_cp_skipZeroInvalidValues; // 不绘零等无效值 + rootObj["drawEnvelope"] = m_cp_drawEnvelope; // 绘制包络线 + rootObj["drawAsDot"] = m_cp_drawAsDot; // 点状 + rootObj["symbolType"] = m_cp_symbolType; // 符号类型 + rootObj["symbolBorderColor"] = m_cp_symbolBorderColor.name(); // 边框颜色 + rootObj["symbolSize"] = m_cp_symbolSize; // 大小 + rootObj["symbolFillColor"] = m_cp_symbolFillColor.name(); // 填充颜色 + rootObj["fieldName"] = m_cp_fieldName; // 字段名称 + } + else if (m_strLineName == "IMAGE_DATA") + { + rootObj["headHeight"] = m_headHeight; // 例区高度 + // 标注字体 + rootObj["yxzpLabelFont"] = m_yxzpLabelFont.toString(); + // 标注旋转 + rootObj["yxzpLabelFont"] = m_yxzpLabelRotation; + // 两端绘制 + rootObj["yxzpLabelFont"] = m_yxzpTwoEndDrawing; + // 绘制颜色 + rootObj["yxzpLabelFont"] = m_yxzpDrawColor; } - - return rootObj; } diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index 15e22bb..1f7bc1c 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -238,11 +238,7 @@ public: QColor m_cp_symbolBorderColor; // 边框颜色 int m_cp_symbolSize = 3; // 大小 QColor m_cp_symbolFillColor; // 填充颜色 - int m_cp_order; // 序号 - double m_cp_depth; // 深度 - double m_cp_corrDepth; // 校正深度 - double m_cp_coreValue; // 数值 - QString m_cp_fieldName; // 字段名称 + int m_cp_fieldName = 0; // 字段名称 int cpLineWidth() const; void setCpLineWidth(int cpLineWidth); diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index b0b80e1..2d2d0eb 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -577,7 +577,7 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString if(strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT" || strLineName == "GEO_LITH" || strLineName == "SWALL_CORE" || strLineName == "WORDS_RELUST" - || strLineName == "LAYER_DATA" ) + || strLineName == "LAYER_DATA" || strLineName == "IMAGE_DATA" || strLineName == "CORE_PHYSICS" ) { //固井结论 / 井壁取心 / 录井剖面 /文字结论 /地质分层 if(listOtherProperty.size()>=5) @@ -663,7 +663,8 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString } } - else if(strLineName == "CORE_PHYSICS") + + if(strLineName == "CORE_PHYSICS") { if(listOtherProperty.size() >= 1) { @@ -677,8 +678,11 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString formInfo->m_strAliasName = listOtherProperty[3]; // 线宽 formInfo->m_cp_lineWidth = listOtherProperty[4].toInt(); + QVariantList listCond; + listCond.append(listOtherProperty[4].toInt()); // 线条颜色 formInfo->m_cp_lineColor = listOtherProperty[5]; + listCond.append(listOtherProperty[5]); // 线型 Qt::PenStyle newStyle = Qt::SolidLine; int iStyle = listOtherProperty[6].toInt(); @@ -712,11 +716,87 @@ void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString break; } formInfo->m_cp_lineStyle = newStyle; - QVariantList listCond; + listCond.append(listOtherProperty[6].toInt()); + // 左刻度 + formInfo->m_cp_leftScale = listOtherProperty[7].toInt(); + formInfo->m_vmin = listOtherProperty[7].toInt(); + // 右刻度 + formInfo->m_cp_rightScale = listOtherProperty[8].toInt(); + formInfo->m_vmax = listOtherProperty[8].toInt(); + // 等分刻度数或自定序列 + formInfo->m_cp_scaleDivisionsOrCustom = listOtherProperty[9].toInt(); + // 刻度类型 + formInfo->m_cp_scaleType = listOtherProperty[10].toInt(); + // 显示单位 + formInfo->m_strUnit = listOtherProperty[11]; + // 字体 + { + QStringList parts = listOtherProperty[12].split(','); + QString family = parts[0]; // 字体名 + int pointSize = parts[1].toInt(); // 字号(pt) + QFont font; + font.setFamily(family); + font.setPointSize(pointSize); + formInfo->m_curveNameFont = font; + } + // 曲线单位 + { + QStringList parts = listOtherProperty[13].split(','); + QString family = parts[0]; // 字体名 + int pointSize = parts[1].toInt(); // 字号(pt) + QFont font; + font.setFamily(family); + font.setPointSize(pointSize); + formInfo->m_strUnitFont = font; + } + // 曲线刻度 + { + QStringList parts = listOtherProperty[14].split(','); + QString family = parts[0]; // 字体名 + int pointSize = parts[1].toInt(); // 字号(pt) + QFont font; + font.setFamily(family); + font.setPointSize(pointSize); + formInfo->m_cp_curveScale = font; + } + // 杆状 + formInfo->m_cp_drawAsBar = (listOtherProperty[15] == "1"); + listCond.append(formInfo->m_cp_drawAsBar); + // 左界 + formInfo->m_cp_leftBoundary = (listOtherProperty[16] == "1"); + listCond.append(formInfo->m_cp_leftBoundary); + // 不绘零等无效值 + formInfo->m_cp_skipZeroInvalidValues = (listOtherProperty[17] == "1"); + listCond.append(formInfo->m_cp_skipZeroInvalidValues); + // 绘制包络线 + formInfo->m_cp_drawEnvelope = (listOtherProperty[18] == "1"); + listCond.append(formInfo->m_cp_drawEnvelope); + // 点状 + formInfo->m_cp_drawAsDot = (listOtherProperty[19] == "1"); + listCond.append(formInfo->m_cp_drawAsDot); + // 符号类型 + formInfo->m_cp_symbolType = listOtherProperty[20].toInt(); + listCond.append(formInfo->m_cp_symbolType); + // 边框颜色 + formInfo->m_cp_symbolBorderColor = listOtherProperty[21]; + listCond.append(formInfo->m_cp_symbolBorderColor); + // 大小 + formInfo->m_cp_symbolSize = listOtherProperty[22].toInt(); + listCond.append(formInfo->m_cp_symbolSize); + // 填充颜色 + formInfo->m_cp_symbolFillColor = listOtherProperty[23]; + listCond.append(formInfo->m_cp_symbolFillColor); + // 字段名称 + formInfo->m_cp_fieldName = listOtherProperty[24].toInt(); + listCond.append(formInfo->m_cp_fieldName); + emit CallManage::getInstance()->sig_changeCorePhysicsProperty(listCond); - } + } + if(strLineName == "IMAGE_DATA") + { +\ } //设置高度 ui->tableWidget->setRowHeight(row, 100); diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 676e78f..e7f1d70 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -4840,10 +4840,77 @@ void QMyCustomPlot::s_changeDepthProperty(QVariantList vlist) } } +// 岩心分析 void QMyCustomPlot::s_changeCorePhysicsProperty(QVariantList vlist) { - qDebug() << "removeSelectedGraph name="; -// m_mapDraggable_CorePhysics + int lineWidth = vlist.at(0).toInt(); + QColor lineColor = vlist[1].value(); + int iStyle = vlist.at(2).toInt(); + Qt::PenStyle newStyle = Qt::SolidLine; + switch(iStyle) + { + case 0: + //无 + newStyle = Qt::NoPen; + break; + case 1: + //实线 + newStyle = Qt::SolidLine; + break; + case 2: + //虚线 + newStyle = Qt::DashLine; + break; + case 3: + //点线 + newStyle = Qt::DotLine; + break; + case 4: + //虚点线 + newStyle = Qt::DashDotLine; + break; + case 5: + //虚点点线 + newStyle = Qt::DashDotDotLine; + break; + default: + break; + } + // 杆状 + bool drawAsBar = vlist.at(3).toBool(); + // 左界 + bool leftBoundary = vlist.at(4).toBool(); + // 不绘零等无效值 + bool skipZeroInvalidValues = vlist.at(5).toBool(); + // 绘制包络线 + bool drawEnvelope = vlist.at(6).toBool(); + // 点状 + bool drawAsDot = vlist.at(7).toBool(); + // 符号类型 + int symbolType = vlist.at(8).toInt(); + // 边框颜色 + QColor symbolBorderColor = vlist[9].value(); + // 大小 + int symbolSize = vlist.at(10).toInt(); + // 填充颜色 + QColor symbolFillColor = vlist[11].value(); + + TransparentDraggableCorePhysics *pDraggableRect =NULL; + for (QMap::Iterator iter = m_mapDraggable_CorePhysics.begin(); iter != m_mapDraggable_CorePhysics.end(); iter++) + { + pDraggableRect = (TransparentDraggableCorePhysics*)iter.value(); + pDraggableRect->setCpLineWidth(lineWidth); + pDraggableRect->setCpLineColor(lineColor); + pDraggableRect->setCpLineStyle(newStyle); + pDraggableRect->setCpDrawAsBar(drawAsBar); + pDraggableRect->setCpLeftBoundary(leftBoundary); + pDraggableRect->setCpDrawAsDot(drawAsDot); + pDraggableRect->setCpSymbolType(symbolType); + pDraggableRect->setCpSymbolBorderColor(symbolBorderColor); + pDraggableRect->setCpSymbolSize(symbolSize); + pDraggableRect->setCpSymbolFillColor(symbolFillColor); + } + this->replot(); } //校深线段