|
|
|
|
@ -88,6 +88,7 @@ nmSubWndUtils::nmSubWndUtils()
|
|
|
|
|
{
|
|
|
|
|
m_pMainWnd = nullptr;
|
|
|
|
|
m_pTabWx = nullptr;
|
|
|
|
|
m_bClearRootDone = false;
|
|
|
|
|
|
|
|
|
|
// 加载NM模块专用参数定义XML(Bin/XmlFiles/ModelParaDefinesNM_cn.xml)
|
|
|
|
|
{
|
|
|
|
|
@ -745,30 +746,15 @@ bool nmSubWndUtils::saveRsts(iSubWnd* pSubWnd, \
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取当前Tab下所有流动段分析窗口,统一遍历保存。
|
|
|
|
|
// 无论主窗口对哪个流动段分析窗口调用 saveRsts,
|
|
|
|
|
// 都会遍历当前Tab下所有有 DataManager 的窗口依次保存,
|
|
|
|
|
// 确保多窗口数据全部持久化。第一个窗口保存时清空成果目录,
|
|
|
|
|
// 后续窗口不再清空,避免误删其他窗口数据。
|
|
|
|
|
ZxMainWindow* pMainWnd1 = const_cast<ZxMainWindow*>(pMainWnd);
|
|
|
|
|
ZxTabWidget* pTabWx = pMainWnd1->getCurTabWx();
|
|
|
|
|
QVector<iSubWnd*> vecAllFittingWnds = pMainWnd1->getAllSubWndsOf(pTabWx, "3004", false);
|
|
|
|
|
|
|
|
|
|
bool bFirstSave = true;
|
|
|
|
|
foreach(iSubWnd* pSub, vecAllFittingWnds) {
|
|
|
|
|
iSubWndFitting* pFit = dynamic_cast<iSubWndFitting*>(pSub);
|
|
|
|
|
if(pFit == nullptr) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
nmDataAnalyzeManager* pMgr = nmDataAnalyzeManager::findManagerByFitting(pFit);
|
|
|
|
|
if(pMgr == nullptr) {
|
|
|
|
|
continue;
|
|
|
|
|
// 对当前分析数据进行保存
|
|
|
|
|
// 保存周期内只在第一个窗口保存时清空成果目录,后续窗口不再清空
|
|
|
|
|
nmSubWndUtils* pUtils = nmSubWndUtils::getInstance();
|
|
|
|
|
bool bClearRoot = (pUtils != nullptr) ? !pUtils->m_bClearRootDone : true;
|
|
|
|
|
if(!pDataManager->saveNmResult(sRstName, pSubWndF, bClearRoot)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 第一个窗口保存时清空成果目录(清理旧窗口残留),后续窗口不再清空
|
|
|
|
|
pMgr->saveNmResult(sRstName, pFit, bFirstSave);
|
|
|
|
|
bFirstSave = false;
|
|
|
|
|
if(pUtils != nullptr) {
|
|
|
|
|
pUtils->m_bClearRootDone = true;
|
|
|
|
|
}
|
|
|
|
|
} else if(pSubWnd->getWndID() == "5118") {
|
|
|
|
|
return true;
|
|
|
|
|
@ -792,6 +778,11 @@ bool nmSubWndUtils::loadRsts(iSubWnd* pSubWnd, \
|
|
|
|
|
ZxMainWindow* pMainWnd1 = const_cast<ZxMainWindow*>(pMainWnd);
|
|
|
|
|
nmSubWndUtils* pUtilsInstance = nmSubWndUtils::getInstance();
|
|
|
|
|
|
|
|
|
|
// 加载成果时重置清空标志,确保下次保存时第一个窗口会清空成果目录
|
|
|
|
|
if(pUtilsInstance != nullptr) {
|
|
|
|
|
pUtilsInstance->m_bClearRootDone = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(nullptr != pMainWnd1) {
|
|
|
|
|
ZxTabWidget* pTabWx = pMainWnd1->getCurTabWx();
|
|
|
|
|
|
|
|
|
|
|