diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index e7a18aa..f8dd51d 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -1356,6 +1356,13 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant m_tdGuan->setRange(-depth-m_tdGuan->mH/2.0, -depth+m_tdGuan->mH/2.0); //保存 m_tdGuan->mPlot->SaveToSLF_Tubing(); + //检查套管组件名称,是否需要更新套管图形 + bool bReDraw = m_tdGuan->mPlot->checkTubingName(m_tdGuan->m_Result); + if(bReDraw) + { + //组件改变后,重绘管柱 + m_tdGuan->mPlot->LoadFromSLF_ReDrawTubing(m_tdGuan->mPlot->m_strSlfName, m_tdGuan->mPlot->m_strLineName); + } } } else if("组件类型" == m_propertyData[pProperty]) @@ -1363,6 +1370,10 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant //qDebug() << "组件类型->改变"; if(m_tdGuan) { + //检查套管组件名称,是否需要更新套管图形 + bool bReDrawOld = m_tdGuan->mPlot->checkTubingName(m_tdGuan->m_Result); + + //-------------------------- QString newResult = variant.value(); m_tdGuan->setResult(newResult); // @@ -1370,6 +1381,14 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant m_tdGuan->setRange(currentRange.lower, currentRange.upper); //保存 m_tdGuan->mPlot->SaveToSLF_Tubing(); + + //--------- + bool bReDrawNew = m_tdGuan->mPlot->checkTubingName(m_tdGuan->m_Result); + if(bReDrawOld || bReDrawNew) + { + //组件改变后,重绘管柱 + m_tdGuan->mPlot->LoadFromSLF_ReDrawTubing(m_tdGuan->mPlot->m_strSlfName, m_tdGuan->mPlot->m_strLineName); + } } } } diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 8cd385f..7a9c7e7 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -8363,6 +8363,17 @@ void QMyCustomPlot::addItem_Tubing() drawOne_Tubing(result); //保存 SaveToSLF_Tubing(); + + //检查套管组件名称,是否需要更新套管图形 + //画管柱 + if(str == "管底部" || + str == "油管深" || + str == "喇叭口" || + str == "剌叭口") + { + //组件改变后,重绘管柱 + LoadFromSLF_ReDrawTubing(m_strSlfName, m_strLineName); + } } } } @@ -8724,6 +8735,77 @@ void QMyCustomPlot::drawOne_Tubing(Slf_JIEGUPOS result) this->addGuanToPlot(newLower, newUpper, cclimgfile, in, false); } +bool QMyCustomPlot::LoadFromSLF_ReDrawTubing(QString strSlfName, QString csCurve) +{ + cclimgpath_Tubing=GetSymbolDir()+"\\管柱组件\\"; + + Slf_JIEGUPOS *m_pResult=NULL; + CMemRdWt *logio=new CMemRdWt(); + if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead)) + { + delete logio; + return false; + } + + int iIndex=logio->OpenTable(csCurve.toStdString().c_str()); + if(iIndex<0) + { + delete logio; + return false; + } + // + if(iIndex>-1) { + int count=logio->GetTableRecordCount(iIndex); + //int fieldnum=logio->GetTableFieldCount(iIndex); + int len=logio->GetTableRecordLength(iIndex); + m_pResult=(Slf_JIEGUPOS *)new char[len+1]; + char buf[200]; + logio->IsChange=true; + + bool bDrawGuanzhu = false; + for(int i=0;iReadTable(iIndex,i+1,m_pResult); + + Slf_JIEGUPOS result; + result.Depth=m_pResult->Depth; + result.Order=m_pResult->Order; + result.Number=m_pResult->Number; + + // + double depth=m_pResult->Depth; + int Order=m_pResult->Order; + int Number=m_pResult->Number; + + if(bDrawGuanzhu == false) + { + //还没有画管柱 + if(Number == zoneOrder_Tubing.value("管底部").toInt()|| + Number == zoneOrder_Tubing.value("油管深").toInt()|| + Number == zoneOrder_Tubing.value("喇叭口").toInt()|| + Number == zoneOrder_Tubing.value("剌叭口").toInt()) + { + bDrawGuanzhu = true;//画管柱 + m_depth_Tubing = depth;//管柱深度 + + //绘制管柱 + DrawTubing(); + } + } + } + // + logio->CloseTable(iIndex); + delete m_pResult; + } + delete logio; + //统一刷新 + this->replot(); + + return true; +} + + bool QMyCustomPlot::SaveToSLF_Tubing() { static int isrun=false; @@ -8827,3 +8909,26 @@ bool QMyCustomPlot::SaveToSLF_Tubing() isrun=false; return true; } + + +//检查套管组件名称,是否需要更新套管图形 +bool QMyCustomPlot::checkTubingName(QString m_Result) +{ + // + QString name,itemName; + m_Result.replace("\\","/"); + int l=m_Result.lastIndexOf("/"); + if(l>-1) name=m_Result.mid(l+1); + l=name.indexOf("."); + name=name.left(l); + itemName=name; + //画管柱 + if(itemName == "管底部" || + itemName == "油管深" || + itemName == "喇叭口" || + itemName == "剌叭口") + { + return true; + } + return false; +} diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 4e515fb..62c52c3 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -298,6 +298,10 @@ public: void DrawStruct(); //绘制管柱 void DrawTubing(); + //组件改变后,重绘管柱 + bool LoadFromSLF_ReDrawTubing(QString strSlfName, QString csCurve); + //检查套管组件名称,是否需要更新套管图形 + bool checkTubingName(QString m_Result); public slots: void slot_time(); diff --git a/logPlus/transparentdraggableGuan.cpp b/logPlus/transparentdraggableGuan.cpp index cadba8d..47bab48 100644 --- a/logPlus/transparentdraggableGuan.cpp +++ b/logPlus/transparentdraggableGuan.cpp @@ -316,6 +316,14 @@ void TransparentDraggableGuan::setItemDepthOffset() //保存 mPlot->SaveToSLF_Tubing(); + //检查套管组件名称,是否需要更新套管图形 + bool bReDraw = mPlot->checkTubingName(m_Result); + if(bReDraw) + { + //组件改变后,重绘管柱 + mPlot->LoadFromSLF_ReDrawTubing(mPlot->m_strSlfName, mPlot->m_strLineName); + } + //属性清空 PropertyService()->InitCurrentViewInfo(); @@ -406,6 +414,13 @@ void TransparentDraggableGuan::onDelRect() mPlot->replot(); //保存 mPlot->SaveToSLF_Tubing(); + //检查套管组件名称,是否需要更新套管图形 + bool bReDraw = mPlot->checkTubingName(m_Result); + if(bReDraw) + { + //组件改变后,重绘管柱 + mPlot->LoadFromSLF_ReDrawTubing(mPlot->m_strSlfName, mPlot->m_strLineName); + } //属性清空 PropertyService()->InitCurrentViewInfo(); } @@ -606,6 +621,7 @@ void TransparentDraggableGuan::onMouseMove(QMouseEvent *event) } + void TransparentDraggableGuan::onMouseRelease(QMouseEvent *event) { if(event->button() == Qt::LeftButton && mDragMode != DragNone) { @@ -619,6 +635,13 @@ void TransparentDraggableGuan::onMouseRelease(QMouseEvent *event) { //保存 mPlot->SaveToSLF_Tubing(); + //检查套管组件名称,是否需要更新套管图形 + bool bReDraw = mPlot->checkTubingName(m_Result); + if(bReDraw) + { + //组件改变后,重绘管柱 + mPlot->LoadFromSLF_ReDrawTubing(mPlot->m_strSlfName, mPlot->m_strLineName); + } } //取消所有选中单元格 diff --git a/logPlus/transparentdraggableGuan.h b/logPlus/transparentdraggableGuan.h index 1e38ab4..531de78 100644 --- a/logPlus/transparentdraggableGuan.h +++ b/logPlus/transparentdraggableGuan.h @@ -32,7 +32,7 @@ public: //设置外径长 void setOin(float in); - //设置解释结论 + //设置套管组件 void setResult(QString filePath); void drawResult(double left_Low, double right_Hight, double lY1, double lY2);