|
|
|
@ -457,6 +457,28 @@ bool nmDataAnalyzeManager::removeWell(nmDataWellBase* pWellData)
|
|
|
|
if(pWellData == nullptr) {
|
|
|
|
if(pWellData == nullptr) {
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const QString removedWellName = pWellData->getWellName();
|
|
|
|
|
|
|
|
const bool isCurrentWell = (m_pCurDataWell == pWellData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 删除井对象前,先移除仍然引用这口井的状态。
|
|
|
|
|
|
|
|
for(int i = m_vecCalculationWells.size() - 1; i >= 0; --i) {
|
|
|
|
|
|
|
|
if(m_vecCalculationWells[i].second == removedWellName) {
|
|
|
|
|
|
|
|
m_vecCalculationWells.remove(i);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果删的是当前井,切换到其他有效井;如果没有,则清空当前井指针。
|
|
|
|
|
|
|
|
if(isCurrentWell) {
|
|
|
|
|
|
|
|
m_pCurDataWell = nullptr;
|
|
|
|
|
|
|
|
for(int i = 0; i < m_vWellData.size(); ++i) {
|
|
|
|
|
|
|
|
nmDataWellBase* pCandidate = m_vWellData[i];
|
|
|
|
|
|
|
|
if(pCandidate != nullptr && pCandidate != pWellData) {
|
|
|
|
|
|
|
|
m_pCurDataWell = pCandidate;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历 m_vWellData,找到并移除指定的井对象
|
|
|
|
// 遍历 m_vWellData,找到并移除指定的井对象
|
|
|
|
for(auto it = m_vWellData.begin(); it != m_vWellData.end(); ++it) {
|
|
|
|
for(auto it = m_vWellData.begin(); it != m_vWellData.end(); ++it) {
|
|
|
|
@ -474,6 +496,16 @@ bool nmDataAnalyzeManager::removeWell(nmDataWellBase* pWellData)
|
|
|
|
|
|
|
|
|
|
|
|
void nmDataAnalyzeManager::removeWellDataAndPlot(nmDataWellBase* pWellData)
|
|
|
|
void nmDataAnalyzeManager::removeWellDataAndPlot(nmDataWellBase* pWellData)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
// 参数校验
|
|
|
|
|
|
|
|
if(pWellData == nullptr) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 公共删井入口中不允许删除当前井,避免活动井引用失效
|
|
|
|
|
|
|
|
if(pWellData == getCurWellData()) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
nmDataPlotContextProvider* pPlotContextProvider = nmDataPlotContext::provider();
|
|
|
|
nmDataPlotContextProvider* pPlotContextProvider = nmDataPlotContext::provider();
|
|
|
|
if (m_pNmGuiPlot != nullptr && pPlotContextProvider != nullptr)
|
|
|
|
if (m_pNmGuiPlot != nullptr && pPlotContextProvider != nullptr)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|