fix(nmNum): 修复多分析保存及切换状态同步

- 保存和关闭成果时遍历全部数值分析窗口
- 切换分析时激活对应数值面板并刷新结果井
feature/pebi-result-snapshot-20260831
lh 1 week ago
parent d7ad840956
commit 35ec07bb25

@ -905,7 +905,7 @@ bool nmSubWndUtils::saveRsts(iSubWnd* pSubWnd, \
// 外层框架仍按 develop 的方式逐窗口回调。数值代次必须以实际分析窗口
// 作为保存锚点,不能让先到达的 Map 或网格回调改变成果井和根目录。
QVector<iSubWnd*> vecSubWnds = pMainWnd1->getAllSubWndsOf(
pTabWx, "3004", true);
pTabWx, "3004", false);
iSubWnd* pSessionAnchor = vecSubWnds.isEmpty()
? pSubWnd : vecSubWnds.first();
ZxDataWell* pDataWell = pSessionAnchor == nullptr
@ -1316,6 +1316,17 @@ void nmSubWndUtils::slotHandleTabChange(int index)
}
}
}
if(pDataManger != nullptr) {
// 切换分析后必须同步活动数值面板。即使DataManager已经是当前对象
// 结果井下拉框也可能仍指向后创建的另一个分析面板。
iDockBaseWx* pWxDockNm1 = pSubWndF->getNmDockWx(0);
nmWxNumericalDesign* pAnalWx = pWxDockNm1 == nullptr
? nullptr : dynamic_cast<nmWxNumericalDesign*>(pWxDockNm1->widget());
if(pAnalWx != nullptr) {
pAnalWx->activateCurrentInstance();
}
}
}
}
}
@ -1421,7 +1432,7 @@ void nmSubWndUtils::detachMdiFittingPlots(ZxMdiSubWindow* pMdiChild)
return;
}
QVector<iSubWnd*> vecSubWnds = m_pMainWnd->getAllSubWndsOf(pTabWx, "3004", true);
QVector<iSubWnd*> vecSubWnds = m_pMainWnd->getAllSubWndsOf(pTabWx, "3004", false);
// 同一个成果内可能有多个分析只清理仍占用Map Plot的DataManager。
foreach(iSubWnd* pSubWnd, vecSubWnds) {
iSubWndFitting* pSubWndF = dynamic_cast<iSubWndFitting*>(pSubWnd);

Loading…
Cancel
Save