X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_WorkshopListener.cpp;h=4f8d3c09c8b398875849778538fbb057a7c1c3af;hb=4de8d53fef7532b6843d79c970f55ad46f98da62;hp=dfce8b8a474ffc5fba3eb56db54d21f2f193e6ec;hpb=9a06f255338dc4cd38cfcdf724fe72306cea29a3;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_WorkshopListener.cpp b/src/XGUI/XGUI_WorkshopListener.cpp index dfce8b8a4..4f8d3c09c 100644 --- a/src/XGUI/XGUI_WorkshopListener.cpp +++ b/src/XGUI/XGUI_WorkshopListener.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2022 CEA/DEN, EDF R&D +// Copyright (C) 2014-2024 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -431,33 +431,31 @@ void XGUI_WorkshopListener:: //bool aHasPart = false; bool aDisplayed = false; - if (!isLoadedScript) { - for (aIt = anObjects.begin(); aIt != anObjects.end(); ++aIt) { - ObjectPtr anObject = *aIt; + for (aIt = anObjects.begin(); aIt != anObjects.end(); ++aIt) { + ObjectPtr anObject = *aIt; #ifdef DEBUG_RESULT_COMPSOLID - ResultPtr aRes = std::dynamic_pointer_cast(anObject); - if (aRes.get()) { - ResultCompSolidPtr aCompSolidRes = - std::dynamic_pointer_cast(aRes); - if (aCompSolidRes.get()) { - qDebug(QString("COMPSOLID, numberOfSubs = %1") - .arg(aCompSolidRes->numberOfSubs()).toStdString().c_str()); - } - if (ModelAPI_Tools::compSolidOwner(aRes)) - qDebug("COMPSOLID sub-object"); + ResultPtr aRes = std::dynamic_pointer_cast(anObject); + if (aRes.get()) { + ResultCompSolidPtr aCompSolidRes = + std::dynamic_pointer_cast(aRes); + if (aCompSolidRes.get()) { + qDebug(QString("COMPSOLID, numberOfSubs = %1") + .arg(aCompSolidRes->numberOfSubs()).toStdString().c_str()); } + if (ModelAPI_Tools::compSolidOwner(aRes)) + qDebug("COMPSOLID sub-object"); + } #endif - ResultBodyPtr aRes = std::dynamic_pointer_cast(anObject); - - if (aRes.get() && aRes->numberOfSubs() > 0) - for (int anIndex = 0; anIndex < aRes->numberOfSubs(); ++anIndex) - setDisplayed(aRes->subResult(anIndex), aDisplayed); - else - setDisplayed(anObject, aDisplayed); - } + ResultBodyPtr aRes = std::dynamic_pointer_cast(anObject); + if (aRes.get() && aRes->numberOfSubs() > 0) + for (int anIndex = 0; anIndex < aRes->numberOfSubs(); ++anIndex) + setDisplayed(aRes->subResult(anIndex), isLoadedScript, aDisplayed); + else + setDisplayed(anObject, isLoadedScript, aDisplayed); } + MAYBE_UNUSED bool isCustomized = customizeFeature(anObjects, aDisplayed); //if (myObjectBrowser) @@ -572,8 +570,13 @@ XGUI_Workshop* XGUI_WorkshopListener::workshop() const } -void XGUI_WorkshopListener::setDisplayed(ObjectPtr theObject, bool& theDisplayed) +void XGUI_WorkshopListener::setDisplayed( + ObjectPtr theObject, const bool theIsLoadedScript, bool& theDisplayed) { + if (theIsLoadedScript) { + theObject->setDisplayed(theDisplayed); + return; + } // the validity of the data should be checked here in order to avoid display of the objects, // which were created, then deleted, but flush for the creation event happens after that // we should not display disabled objects