From a37049f2809ea1cd4d60a244e5d61827179f71ff Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 8 Feb 2021 18:24:22 +0000 Subject: [PATCH] EgtExecutor : - aggiunta funzione Exe e Lua DuploGetModified. --- EXE_GdbPartLayers.cpp | 18 ++++++++++++++++++ LUA_GdbPartLayers.cpp | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/EXE_GdbPartLayers.cpp b/EXE_GdbPartLayers.cpp index 90e1337..602f51a 100644 --- a/EXE_GdbPartLayers.cpp +++ b/EXE_GdbPartLayers.cpp @@ -731,10 +731,28 @@ ExeDuploSetModified( int nSouId) // Verifico sia un pezzo if ( ! ExeIsPart( nSouId)) return false ; + // Verifico ci siano dei duplicati che dipendono dal pezzo + if ( ! pGeomDB->ExistsInfo( nSouId, GDB_SI_DUPLIST)) + return true ; // Imposto il flag di modificato return pGeomDB->SetInfo( nSouId, GDB_SI_DUPMODIF, true) ; } +//----------------------------------------------------------------------------- +bool +ExeDuploGetModified( int nSouId, bool& bModif) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // Verifico sia un pezzo + if ( ! ExeIsPart( nSouId)) + return false ; + // recupero il flag di modificato + if ( ! pGeomDB->GetInfo( nSouId, GDB_SI_DUPMODIF, bModif)) + bModif = false ; + return true ; +} + //----------------------------------------------------------------------------- bool ExeDuploUpdate( int nSouId) diff --git a/LUA_GdbPartLayers.cpp b/LUA_GdbPartLayers.cpp index 3be51d9..1ca47e4 100644 --- a/LUA_GdbPartLayers.cpp +++ b/LUA_GdbPartLayers.cpp @@ -469,6 +469,25 @@ LuaDuploSetModified( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaDuploGetModified( lua_State* L) +{ + // 1 parametro : nSouId + int nSouId ; + LuaCheckParam( L, 1, nSouId) + LuaClearStack( L) ; + // recupero lo stato di modifica del pezzo + bool bModif ; + bool bOk = ExeDuploGetModified( nSouId, bModif) ; + // restituisco il risultato + if ( bOk) + LuaSetParam( L, bModif) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaDuploUpdate( lua_State* L) @@ -549,6 +568,7 @@ LuaInstallGdbPartLayer( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtDuploCount", LuaDuploCount) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDuploList", LuaDuploList) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDuploSetModified", LuaDuploSetModified) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtDuploGetModified", LuaDuploGetModified) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDuploUpdate", LuaDuploUpdate) ; bOk = bOk && luaMgr.RegisterFunction( "EgtIsDuplo", LuaIsDuplo) ; bOk = bOk && luaMgr.RegisterFunction( "EgtDuploGetOriginal", LuaDuploGetOriginal) ;