diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index c120516..5cdb4d3 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -125,7 +125,7 @@ signals: void sig_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType); //修改曲线选择状态 iSelect=0未知,1标准曲线,2主校曲线,3从校曲线 - void sig_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect); + void sig_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge); //插件测试 void sig_testPlugin(QString strInfo); @@ -166,6 +166,10 @@ signals: void sig_RuncorFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); void sig_Runcor_List(QString strUuid, QList left_Low_List, QList right_Hight_List); + //执行拼接 + void sig_MergeFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); + void sig_Merge_List(QString strUuid, QList left_Low_List, QList right_Hight_List); + //Plot重新加载数据 void sig_ReloadPlot(QString strUuid, QString strSlfName, QString strLineName); diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index b2df613..49714a7 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -57,7 +57,7 @@ FormInfo::FormInfo(QWidget *parent, QString strSlfName, QString strWellName, QSt //修改曲线选择状态 iSelect=0未知,1标准曲线,2主曲线,3从曲线 - connect(CallManage::getInstance(), SIGNAL(sig_ChangeLineStatus(QString, QString, QString, QString, QString, int)), this, SLOT(s_ChangeLineStatus(QString, QString, QString, QString, QString, int))); + connect(CallManage::getInstance(), SIGNAL(sig_ChangeLineStatus(QString, QString, QString, QString, QString, int, bool)), this, SLOT(s_ChangeLineStatus(QString, QString, QString, QString, QString, int, bool))); } @@ -221,15 +221,33 @@ void FormInfo::paintEvent(QPaintEvent* event) } else if(m_iSelect==1) { - strAliasNameTmp = strAliasNameTmp + "-标"; + if(m_bMerge)//是拼接状态 + { + strAliasNameTmp = strAliasNameTmp + "-目"; + } + else { + strAliasNameTmp = strAliasNameTmp + "-标"; + } } else if(m_iSelect==2) { - strAliasNameTmp = strAliasNameTmp + "-主校"; + if(m_bMerge)//是拼接状态 + { + strAliasNameTmp = strAliasNameTmp + "-源"; + } + else { + strAliasNameTmp = strAliasNameTmp + "-主校"; + } } else if(m_iSelect==3) { - strAliasNameTmp = strAliasNameTmp + "-从校"; + if(m_bMerge)//是拼接状态 + { + strAliasNameTmp = strAliasNameTmp + "-从接"; + } + else { + strAliasNameTmp = strAliasNameTmp + "-从校"; + } } painter.drawText(rect.left(), rect.top(), rect.width(), rect.height()/3, Qt::AlignCenter, strAliasNameTmp); } @@ -482,7 +500,7 @@ QColor FormInfo::getBackColor() } //修改曲线选择状态 iSelect=0未知,1标准曲线,2主曲线,3从曲线 -void FormInfo::s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect) +void FormInfo::s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge) { if(m_strUuid == strUuid && m_strSlfName == strSlfName && @@ -491,6 +509,7 @@ void FormInfo::s_ChangeLineStatus(QString strUuid, QString strSlfName, QString s m_strLineName == strLineName) { m_iSelect = iSelect; + m_bMerge = bMerge; update(); } } diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index c8d9e32..2ee081a 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -55,7 +55,7 @@ public slots: float vMin, float vMax, QString strOtherScaleType, QColor frontColor, QColor backColor, QString newFillMode, bool bFillNow); //修改曲线选择状态 iSelect=0未知,1标准曲线,2主曲线,3从曲线 - void s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect); + void s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge); public: QString m_strUuid; @@ -67,6 +67,7 @@ public: QString m_strUnit;//单位 int m_iSelect=0; //iSelect=0未知,1标准曲线,2主曲线,3从曲线 + bool m_bMerge = false;//是拼接状态,否代表校深状态。为了切换时做数据清理 QString m_strType;//类型:curve, wave // double m_dWidth;//线宽 diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index d06f634..d5993f7 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -40,6 +40,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : // 设置工具栏的位置,此处设置为在左侧 addToolBar(Qt::LeftToolBarArea, ui->toolBar); addToolBar(Qt::RightToolBarArea, ui->toolBar_2); + addToolBar(Qt::RightToolBarArea, ui->toolBar_3); //初始化工具栏 initMainToolBar(); @@ -47,6 +48,9 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : //校深 initToolBar_2(); ui->toolBar_2->hide(); + //拼接 + initToolBar_3(); + ui->toolBar_3->hide(); //加载样式 loadStyle(":/qrc/qss/flatgray.css"); @@ -128,6 +132,9 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : //执行校正 connect(CallManage::getInstance(), SIGNAL(sig_Runcor_List(QString, QList, QList)), this, SLOT(s_Runcor_List(QString, QList, QList))); + //执行拼接 + connect(CallManage::getInstance(), SIGNAL(sig_Merge_List(QString, QList, QList)), this, SLOT(s_Merge_List(QString, QList, QList))); + //图头 m_dock1=new QDockWidget(tr(""),this); m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable @@ -179,6 +186,7 @@ void MainWindowCurve::initMainToolBar() QIcon currtempliteIcon(::GetImagePath()+"icon/currtemplite.png"); QIcon saveastemplateIcon(::GetImagePath()+"icon/saveastemplate.png"); QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png"); + QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png"); QIcon ModuleOpenIcon(::GetImagePath()+"icon/ModuleOne.png"); QIcon openFileIcon(":/image/open.png"); QIcon runIcon(":/image/capacity.png"); @@ -190,6 +198,7 @@ void MainWindowCurve::initMainToolBar() QAction* m_currtempliteAc = nullptr; //加载图文件 QAction* m_saveastemplateAc = nullptr; //另存为图文件 QAction* m_executeDepthShiftAc = nullptr; //校深 + QAction* m_joindepthAc = nullptr; //拼接 QAction* m_ModuleOpenAc = nullptr; //处理方法 //QAction* m_openAc = nullptr; //打开 // QAction* m_runAc = nullptr;// @@ -200,6 +209,7 @@ void MainWindowCurve::initMainToolBar() m_currtempliteAc = new QAction(currtempliteIcon, "加载图文件", this); m_saveastemplateAc = new QAction(saveastemplateIcon, "另存为图文件", this); m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this); + m_joindepthAc = new QAction(joindepthIcon, "拼接", this); m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this); // m_runAc = new QAction(runIcon, "设置井", this); // m_debugAc = new QAction(debugIcon, "撤销", this); @@ -213,6 +223,7 @@ void MainWindowCurve::initMainToolBar() ui->mainToolBar->addAction(m_currtempliteAc); ui->mainToolBar->addAction(m_saveastemplateAc); ui->mainToolBar->addAction(m_executeDepthShiftAc); + ui->mainToolBar->addAction(m_joindepthAc); ui->mainToolBar->addAction(m_ModuleOpenAc); // ui->mainToolBar->addAction(m_runAc); // ui->mainToolBar->addAction(m_debugAc); @@ -223,6 +234,7 @@ void MainWindowCurve::initMainToolBar() connect(m_currtempliteAc, &QAction::triggered, this, &MainWindowCurve::s_currtemplite); connect(m_saveastemplateAc, &QAction::triggered, this, &MainWindowCurve::s_Save); connect(m_executeDepthShiftAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteDepthShift); + connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge); connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen); @@ -482,11 +494,11 @@ void MainWindowCurve::initToolBar_2() //add QAction to Widget. ui->toolBar_2->addAction(m_ShiftAc); ui->toolBar_2->addAction(m_MoveShiftAc); - ui->toolBar_2->addAction(m_DepthShiftAc); + //ui->toolBar_2->addAction(m_DepthShiftAc); ui->toolBar_2->addSeparator(); ui->toolBar_2->addAction(m_StandardAc); ui->toolBar_2->addAction(m_CorrectionAc); - ui->toolBar_2->addAction(m_ShiftotherAc); + //ui->toolBar_2->addAction(m_ShiftotherAc); ui->toolBar_2->addSeparator(); ui->toolBar_2->addAction(m_autocorAc); ui->toolBar_2->addAction(m_runcorAc); @@ -504,7 +516,68 @@ void MainWindowCurve::initToolBar_2() connect(m_runcorAc, &QAction::triggered, this, &MainWindowCurve::s_runcor); connect(m_ClearAllSetCurveAc, &QAction::triggered, this, &MainWindowCurve::s_ClearAllSetCurve); connect(m_ClearSetCurveAc, &QAction::triggered, this, &MainWindowCurve::s_ClearSetCurve); +} +//初始化工具栏 +void MainWindowCurve::initToolBar_3() +{ + QSize toolIconSize(26, 26); + ui->toolBar_3->setIconSize(toolIconSize); //设置工具栏图标大小 + + QIcon StandardIcon(::GetImagePath()+"icon/Standard.png"); + QIcon CorrectionIcon(::GetImagePath()+"icon/Correction.png"); + QIcon ShiftotherIcon(::GetImagePath()+"icon/Shiftother.png"); + QIcon PreMegIcon(::GetImagePath()+"icon/PreMeg.png"); + QIcon mergeIcon(::GetImagePath()+"icon/merge.png"); + QIcon ClearAllSetCurveIcon(::GetImagePath()+"icon/ClearAllSetCurve.png"); + QIcon ClearSetCurveIcon(::GetImagePath()+"icon/ClearSetCurve.png"); + + //工具栏 + QAction* m_StandardAc = nullptr; + QAction* m_CorrectionAc = nullptr; + QAction* m_ShiftotherAc = nullptr; + QAction* m_PreMegAc = nullptr; + QAction* m_mergeAc = nullptr; + QAction* m_ClearAllSetCurveAc = nullptr; + QAction* m_ClearSetCurveAc = nullptr; + + m_StandardAc = new QAction(StandardIcon, "", this); + m_CorrectionAc = new QAction(CorrectionIcon, "", this); + m_ShiftotherAc = new QAction(ShiftotherIcon, "", this); + m_PreMegAc = new QAction(PreMegIcon, "", this); + m_mergeAc = new QAction(mergeIcon, "", this); + m_ClearAllSetCurveAc = new QAction(ClearAllSetCurveIcon, "", this); + m_ClearSetCurveAc = new QAction(ClearSetCurveIcon, "", this); + + m_StandardAc->setToolTip("设置/取消目标拼接曲线"); + m_CorrectionAc->setToolTip("设置/取消源拼接曲线"); + m_ShiftotherAc->setToolTip("批量设置从拼接曲线"); + m_PreMegAc->setToolTip("拼接效果预览"); + m_mergeAc->setToolTip("执行拼接"); + m_ClearAllSetCurveAc->setToolTip("清除全部曲线设置"); + m_ClearSetCurveAc->setToolTip("清除全部从曲线设置"); + + //此种方式为文字显示在图标右侧 + ui->toolBar_3->setToolButtonStyle(Qt::ToolButtonIconOnly); + + //add QAction to Widget. + ui->toolBar_3->addAction(m_StandardAc); + ui->toolBar_3->addAction(m_CorrectionAc); + //ui->toolBar_3->addAction(m_ShiftotherAc); + ui->toolBar_3->addSeparator(); + //ui->toolBar_3->addAction(m_PreMegAc); + ui->toolBar_3->addAction(m_mergeAc); + ui->toolBar_3->addSeparator(); + ui->toolBar_3->addAction(m_ClearAllSetCurveAc); + ui->toolBar_3->addAction(m_ClearSetCurveAc); + + connect(m_StandardAc, &QAction::triggered, this, &MainWindowCurve::s_Standard); + connect(m_CorrectionAc, &QAction::triggered, this, &MainWindowCurve::s_Correction); +//// connect(m_ShiftotherAc, &QAction::triggered, this, &MainWindowCurve::s_Shiftother); +// connect(m_autocorAc, &QAction::triggered, this, &MainWindowCurve::s_autocor); + connect(m_mergeAc, &QAction::triggered, this, &MainWindowCurve::s_merge); + connect(m_ClearAllSetCurveAc, &QAction::triggered, this, &MainWindowCurve::s_ClearAllSetCurve); + connect(m_ClearSetCurveAc, &QAction::triggered, this, &MainWindowCurve::s_ClearSetCurve); } QStringList MainWindowCurve::getLineList(QString strWellName, QString strTrackName) @@ -790,7 +863,7 @@ void MainWindowCurve::s_MoveShift() } } -//设置/取消标准曲线 +//设置/取消标准(目标拼接)曲线 void MainWindowCurve::s_Standard() { if(m_SelectTableItem.m_iTableType==0) { @@ -813,7 +886,7 @@ void MainWindowCurve::s_Standard() return; } - //主校曲线中,去掉本条曲线 + //主校(源拼接)曲线中,去掉本条曲线 if(m_RightCurve.m_strSlfName == m_SelectTableItem.m_strSlfName && m_RightCurve.m_strWellName == m_SelectTableItem.m_strWellName && m_RightCurve.m_strTrackName == m_SelectTableItem.m_strTrackName && @@ -829,7 +902,7 @@ void MainWindowCurve::s_Standard() m_RightCurve.m_strFormInfoType=""; } - //从校曲线中,去掉本条曲线 + //从校(从拼接)曲线中,去掉本条曲线 for(int i=0; isig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0, m_bMerge); //标准曲线中,切换为不选择 m_LeftCurve.m_iTableType=0; @@ -870,10 +943,10 @@ void MainWindowCurve::s_Standard() else { //修改原来的标准曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName, 0, m_bMerge); //修改当前曲线选择状态 iSelect=1标准曲线 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 1); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 1, m_bMerge); //设置标准曲线 m_LeftCurve = m_SelectTableItem; @@ -883,14 +956,14 @@ void MainWindowCurve::s_Standard() { //当前没有标准曲线 //修改当前曲线选择状态 iSelect=1标准曲线 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 1); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 1, m_bMerge); //设置标准曲线 m_LeftCurve = m_SelectTableItem; } } -//设置/取消校正曲线 +//设置/取消校正(源拼接)曲线 void MainWindowCurve::s_Correction() { if(m_SelectTableItem.m_iTableType==0) { @@ -945,7 +1018,7 @@ void MainWindowCurve::s_Correction() m_TempCurve.m_strLineName == m_SelectTableItem.m_strLineName) { //修改当前曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0, m_bMerge); //删除从校曲线 m_ShiftCurves.removeAt(i); @@ -964,7 +1037,7 @@ void MainWindowCurve::s_Correction() m_RightCurve.m_strLineName == m_SelectTableItem.m_strLineName) { //修改当前曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 0, m_bMerge); //主校曲线中,切换为不选择 m_RightCurve.m_iTableType=0; @@ -978,7 +1051,7 @@ void MainWindowCurve::s_Correction() else { //修改当前曲线选择状态 iSelect=3从校曲线 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 3); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 3, m_bMerge); //设置从校曲线 m_ShiftCurves.append(m_SelectTableItem); @@ -988,7 +1061,7 @@ void MainWindowCurve::s_Correction() { //当前没有主校曲线 //修改当前曲线选择状态 iSelect=2主校曲线 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 2); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, m_SelectTableItem.m_strLineName, 2, m_bMerge); //设置主校曲线 m_RightCurve = m_SelectTableItem; @@ -1293,7 +1366,6 @@ void MainWindowCurve::s_runcor() //通知界面,执行校正 emit CallManage::getInstance()->sig_RuncorFromPlot(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName); - } void MainWindowCurve::s_Runcor_List(QString strUuid, QList left_Low_List, QList right_Hight_List) @@ -1462,6 +1534,218 @@ void MainWindowCurve::s_Runcor_List(QString strUuid, QList left_Low_List } } +//执行拼接 +void MainWindowCurve::s_merge() +{ + //当前有标准(目标)曲线 + if(m_LeftCurve.m_iTableType==3 && m_LeftCurve.m_strFormInfoType=="curveObject") + { + } + else + { + QMessageBox::warning(this, "提示", "请先选择目标曲线!"); + return; + } + + //当前有主校(源拼接)曲线 + if(m_RightCurve.m_iTableType==3 && m_RightCurve.m_strFormInfoType=="curveObject") + { + } + else + { + QMessageBox::warning(this, "提示", "请先选择源拼接曲线!"); + return; + } + + //通知界面,执行校正 + emit CallManage::getInstance()->sig_MergeFromPlot(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName); +} + +void MainWindowCurve::s_Merge_List(QString strUuid, QList left_Low_List, QList right_Hight_List) +{ + if(strUuid != m_strUuid) + { + return; + } + + //当前有标准(目标)曲线 + if(m_LeftCurve.m_iTableType==3 && m_LeftCurve.m_strFormInfoType=="curveObject") + { + } + else + { + QMessageBox::warning(this, "提示", "无目标井!"); + return; + } + + //当前有主校(源拼接)曲线 + if(m_RightCurve.m_iTableType==3 && m_RightCurve.m_strFormInfoType=="curveObject") + { + } + else + { + QMessageBox::warning(this, "提示", "缺少目标曲线或目标曲线无效!"); + return; + } + + m_mergeLineList.clear(); + // + int pointnum =left_Low_List.size(); + + // + for(int i=0;iSetLeftDepth(left_Low_List[i]); + pLine->SetRightDepth(right_Hight_List[i]); + m_mergeLineList.append(pLine); + } + qsort(m_mergeLineList,0,m_mergeLineList.size()-1,0); + + if(pointnum<1) { + QMessageBox::warning(this, "提示", "曲线拼接深度点不存在,无法拼接!\n请先设置拼接深度点。"); + return; + } + if(pointnum>2) { + QMessageBox::warning(this, "提示", "曲线拼接深度点太多,最多可设置2点!\n请重新设置拼接深度点。"); + return; + } + +// float SourSdep=0; +// float SourEdep=0; +// float DectSdep=0; +// if(pointnum==1) { +// QMessageBox box(QMessageBox::Warning,"提示","拼接深度点仅有1个,请您选择拼接部位"); +// box.setStandardButtons (QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel); +// box.setButtonText(QMessageBox::Yes,QString("拼接上段")); +// box.setButtonText(QMessageBox::No,QString("拼接下段")); +// box.setButtonText(QMessageBox::Cancel,QString("放弃")); +// int flag=box.exec();//QMessageBox::information(NULL,"敬告",pwelllog->GetName()+mess,QMessageBox::Yes,QMessageBox::No,QMessageBox::Cancel); + +// if(flag==QMessageBox::Yes) { +// SourSdep=m_RightCurve->GetTopDepth(); +// SourEdep=m_mergeLineList[0]->GetLeftDepth(); +// DectSdep=SourSdep; +// } +// else if(flag==QMessageBox::No) { +// DectSdep=m_mergeLineList[0]->GetLeftDepth(); +// SourEdep=m_RightCurve->GetBottomDepth(); +// SourSdep=m_mergeLineList[0]->GetRightDepth(); +// } +// else return; +// } +// else if(pointnum==2) { +// SourSdep=m_mergeLineList[0]->GetLeftDepth()+m_RightCurve->GetShiftOffset(); +// SourEdep=m_mergeLineList[1]->GetLeftDepth()+m_RightCurve->GetShiftOffset(); +// DectSdep=m_mergeLineList[0]->GetLeftDepth(); +// } + +// QString name1=m_LeftCurve.m_strLineName; +// QString name2=m_RightCurve.m_strLineName; + +// QList ShiftCurvesAll; +// ShiftCurvesAll.append(m_RightCurve); +// ShiftCurvesAll.append(m_ShiftCurves); +// if(ShiftCurvesAll.size()<1) { +// AfxMessageBox("缺少目标曲线或目标曲线无效!"); +// return; +// } + +// int size=(SourEdep-SourSdep)/m_LeftCurve->m_Rlev+1.5; +// QString filename2=m_RightCurve.m_strSlfName; +// QString filename1=m_LeftCurve.m_strSlfName; +// CMemRdWt mrw1; +// CMemRdWt mrw2; + +// struct INC_STRU Inc={0},Inc1={0}; +// struct INP_STRU Inp,Inp1; +// struct HD_STRU Hd={99999.0,-99999.0,0}; +// struct HD_STRU Hd1={99999.0,-99999.0,0}; +// int flag=0; +// if(filename1==filename2) { +// CMemRdWt mrw4; +// if(mrw4.Open(filename1.toStdString().c_str())) { +// CMemRdWt mrw3; +// QDir aa; +// filename2=::GetLogdataPath()+"temp\\temp001"; +// aa.remove(filename2); +// if(mrw3.Open(filename2.toStdString().c_str(),CMemRdWt::modeCreate,1024,1024,0,mrw4.IsWis)) { +// mrw3.CopyFromFile(mrw4,(char *)name2.toStdString().c_str()); +// mrw3.Save(); +// mrw3.Close(); +// flag=1; +// } +// mrw1.Close(); +// } +// } +// if (!mrw1.Open(filename1.toStdString().c_str())) { +// if(flag) { +// QDir aa; +// aa.remove(filename2); +// } +// return; +// } +// if (!mrw2.Open(filename2.toStdString().c_str())) { +// mrw1.Close(); +// if(flag) { +// QDir aa; +// aa.remove(filename2); +// } +// return; +// } +// mrw1.SetStruct(&Inc,NULL,&Inp,NULL,NULL,NULL,&Hd,NULL); +// mrw2.SetStruct(&Inc1,NULL,&Inp1,NULL,NULL,NULL,&Hd1,NULL); + +// QList names1,names2; +// names1.append(name1); +// names2.append(name2); +// for(int i=0;isig_ChangeLineStatus(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_LeftCurve.m_strSlfName, m_LeftCurve.m_strWellName, m_LeftCurve.m_strTrackName, m_LeftCurve.m_strLineName, 0, m_bMerge); //标准曲线中,切换为不选择 m_LeftCurve.m_iTableType=0; @@ -1487,7 +1771,7 @@ void MainWindowCurve::s_ClearAllSetCurve() if(m_RightCurve.m_iTableType==3 && m_RightCurve.m_strFormInfoType=="curveObject") { //修改当前曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_RightCurve.m_strSlfName, m_RightCurve.m_strWellName, m_RightCurve.m_strTrackName, m_RightCurve.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_RightCurve.m_strSlfName, m_RightCurve.m_strWellName, m_RightCurve.m_strTrackName, m_RightCurve.m_strLineName, 0, m_bMerge); //主校曲线中,切换为不选择 m_RightCurve.m_iTableType=0; @@ -1504,7 +1788,7 @@ void MainWindowCurve::s_ClearAllSetCurve() { SelectTableItem m_TempCurve = m_ShiftCurves[i]; //修改当前曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_TempCurve.m_strSlfName, m_TempCurve.m_strWellName, m_TempCurve.m_strTrackName, m_TempCurve.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_TempCurve.m_strSlfName, m_TempCurve.m_strWellName, m_TempCurve.m_strTrackName, m_TempCurve.m_strLineName, 0, m_bMerge); //删除从校曲线 m_ShiftCurves.removeAt(i); @@ -1519,7 +1803,7 @@ void MainWindowCurve::s_ClearSetCurve() { SelectTableItem m_TempCurve = m_ShiftCurves[i]; //修改当前曲线选择状态 iSelect=0未知 - emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_TempCurve.m_strSlfName, m_TempCurve.m_strWellName, m_TempCurve.m_strTrackName, m_TempCurve.m_strLineName, 0); + emit CallManage::getInstance()->sig_ChangeLineStatus(m_strUuid, m_TempCurve.m_strSlfName, m_TempCurve.m_strWellName, m_TempCurve.m_strTrackName, m_TempCurve.m_strLineName, 0, m_bMerge); //删除从校曲线 m_ShiftCurves.removeAt(i); @@ -1686,6 +1970,16 @@ void MainWindowCurve::s_Save() //校深 void MainWindowCurve::s_ExecuteDepthShift() { + //当前正在拼接处理 + if(m_bMerge) + { + //清理拼接线段 + s_ClearAllSetCurve(); + } + m_bMerge = false; + ui->toolBar_3->hide(); + + // if(ui->toolBar_2->isHidden()) { ui->toolBar_2->show(); @@ -1696,6 +1990,29 @@ void MainWindowCurve::s_ExecuteDepthShift() } } +//拼接 +void MainWindowCurve::s_ExecuteMerge() +{ + //当前正在校深处理 + if(!m_bMerge) + { + //清理校深线段 + s_ClearAllSetCurve(); + } + m_bMerge = true; + ui->toolBar_2->hide(); + + // + if(ui->toolBar_3->isHidden()) + { + ui->toolBar_3->show(); + } + else + { + ui->toolBar_3->hide(); + } +} + void MainWindowCurve::s_ModuleOpen() { QString strSlfName = ""; diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 64671bd..ef61aea 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -110,6 +110,8 @@ public: void initMainToolBar(); void initToolBar(); void initToolBar_2(); + void initToolBar_3(); + bool m_bMerge = false;//是否拼接状态,否代表校深状态。为了切换时做数据清理 // 返回 strWellName << strSlfName QStringList insertCol(int nW); @@ -211,11 +213,16 @@ public slots: //清除全部从曲线设置 void s_ClearSetCurve(); + //执行拼接 + void s_merge(); + void s_Merge_List(QString strUuid, QList left_Low_List, QList right_Hight_List); + // void s_showHeadTable(); //显示/隐藏图头 void s_currtemplite(); //加载图文件 void s_Save(); //保存图文件 void s_ExecuteDepthShift(); //校深 + void s_ExecuteMerge(); //拼接 void s_ModuleOpen(); //处理算法 //void s_Open(QString fileFull);//打开 diff --git a/logPlus/mainwindowcurve.ui b/logPlus/mainwindowcurve.ui index 2b43ed4..1366e1c 100644 --- a/logPlus/mainwindowcurve.ui +++ b/logPlus/mainwindowcurve.ui @@ -74,6 +74,17 @@ false + + + toolBar_3 + + + TopToolBarArea + + + false + + diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index c547646..3f2ea15 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -86,6 +86,8 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel //执行校正 connect(CallManage::getInstance(), SIGNAL(sig_RuncorFromPlot(QString, QString, QString, QString, QString)), this, SLOT(s_RuncorFromPlot(QString, QString, QString, QString, QString))); + //执行拼接 + connect(CallManage::getInstance(), SIGNAL(sig_MergeFromPlot(QString, QString, QString, QString, QString)), this, SLOT(s_MergeFromPlot(QString, QString, QString, QString, QString))); //Plot重新加载数据 connect(CallManage::getInstance(), SIGNAL(sig_ReloadPlot(QString, QString, QString)), this, SLOT(s_ReloadPlot(QString, QString, QString))); @@ -527,6 +529,47 @@ void QMyCustomPlot::s_RuncorFromPlot(QString strUuid, QString strSlfName, QStrin emit CallManage::getInstance()->sig_Runcor_List(m_strUuid, left_Low_List, right_Hight_List); } +//执行拼接 +void QMyCustomPlot::s_MergeFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName) +{ + if(m_strUuid == strUuid && + m_strSlfName == strSlfName && + m_strWellName == strWellName && + m_strTrackName == strTrackName && + m_strLineName == strLineName) + { + + } + else + { + return; + } + + QList left_Low_List; + QList right_Hight_List; + + TransparentDraggableLine *pDraggableLine =NULL; + QMap::Iterator it = m_mapDraggable_Line.begin(); + while( it != m_mapDraggable_Line.end() ) + { + pDraggableLine = (TransparentDraggableLine*)it.value(); + left_Low_List.append(0-pDraggableLine->m_left_Low); + right_Hight_List.append(0-pDraggableLine->m_right_Hight); + + // + it++; + } + + if(left_Low_List.size()<=0) + { + QMessageBox::warning(this, "提示", "曲线拼接深度点不存在,无法拼接!\n请先设置拼接深度点。"); + return; + } + + //执行拼接 + emit CallManage::getInstance()->sig_Merge_List(m_strUuid, left_Low_List, right_Hight_List); +} + //Plot重新加载数据 void QMyCustomPlot::s_ReloadPlot(QString strUuid, QString strSlfName, QString strLineName) { diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 508dc24..a828b16 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -161,6 +161,9 @@ public slots: //执行校正 void s_RuncorFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); + //执行拼接 + void s_MergeFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); + //Plot重新加载数据 void s_ReloadPlot(QString strUuid, QString strSlfName, QString strLineName);