EgtMachKernel 2.1c4 :

- modifiche per gestire lo stato delle operazioni (ok, da ricalcolare, ....).
This commit is contained in:
Dario Sassi
2019-03-18 18:52:08 +00:00
parent 4c0ad599ed
commit 39bf1700d9
25 changed files with 1229 additions and 373 deletions
+26
View File
@@ -352,8 +352,34 @@ MachMgr::SetOperationMode( int nId, bool bActive)
// verifico sia una Operazione
if ( GetOperationType( nId) == OPER_NULL)
return false ;
// recupero lo stato di attivazione corrente
int nMode ;
if ( ! m_pGeomDB->GetMode( nId, nMode))
return false ;
bool bPrevActive = ( nMode == GDB_MD_STD) ;
// eseguo attivazione/disattivazione
m_pGeomDB->SetMode( nId, ( bActive ? GDB_MD_STD : GDB_MD_HIDDEN)) ;
// se non cambia l'attivazione, esco
if ( bActive == bPrevActive)
return true ;
// dichiaro da aggiornare questa lavorazione
Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nId)) ;
if ( pOpe != nullptr)
pOpe->UpdateStatus( MCH_ST_OTH_MODIF) ;
// da aggiornare post apply della precedente attiva
int nOpeId = GetPrevActiveOperation( nId) ;
if ( nOpeId != GDB_ID_NULL) {
Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nOpeId)) ;
if ( pOpe != nullptr)
pOpe->UpdateStatus( MCH_ST_NO_POSTAPPL) ;
}
// forzo aggiornamento della successiva, le altre seguiranno automaticamente
nOpeId = GetNextActiveOperation( nId) ;
if ( nOpeId != GDB_ID_NULL) {
Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nOpeId)) ;
if ( pOpe != nullptr)
pOpe->UpdateStatus( MCH_ST_OTH_MODIF) ;
}
return true ;
}