From 36a3686ef2507356108c387f8a0a63f442f63c65 Mon Sep 17 00:00:00 2001 From: vsr Date: Thu, 10 Mar 2011 13:06:42 +0000 Subject: [PATCH] 0021206: CEA] example script fails --- src/VISU_I/VISU_Tools.cxx | 200 ++++++++++++++++++-------------------- 1 file changed, 92 insertions(+), 108 deletions(-) diff --git a/src/VISU_I/VISU_Tools.cxx b/src/VISU_I/VISU_Tools.cxx index d17a33ec..fb66089e 100644 --- a/src/VISU_I/VISU_Tools.cxx +++ b/src/VISU_I/VISU_Tools.cxx @@ -347,93 +347,79 @@ namespace VISU bool updateContainers) { SUIT_Session* aSession = SUIT_Session::session(); - if(!aSession) - return; + if (!aSession) return; SalomeApp_Application* anApp = dynamic_cast(aSession->activeApplication()); - if( !anApp ) - return; + if ( !anApp ) return; - SUIT_ViewManager* aManager = anApp->activeViewManager(); + SalomeApp_Study* aStudy = dynamic_cast( anApp->activeStudy() ); + if ( !aStudy ) return; - if( !aManager) - return; - - bool is2dViewActive = aManager->getType() == SPlot2d_Viewer::Type(); + SalomeApp_Module* aModule = dynamic_cast( anApp->module( anApp->moduleTitle( "VISU" ) ) ); + if ( !aModule ) return; + + LightApp_Displayer* aDisplayer = aModule->displayer(); + + SUIT_ViewManager* aManager = anApp->activeViewManager(); - Qtx::VisibilityState state = is2dViewActive ? GetStateByDisplaying(theDisplaying) : Qtx::UnpresentableState; + Qtx::VisibilityState state = ( aManager && aManager->getType() == SPlot2d_Viewer::Type() ) ? + GetStateByDisplaying(theDisplaying) : Qtx::UnpresentableState; - if(updateCurve) - SetVisibilityState(theCurve->GetEntry(), state); + if ( updateCurve ) + SetVisibilityState( theCurve->GetEntry(), state ); - if(updateTable) { + if ( updateTable ) { Table_i* aTable = theCurve->getTable(); - if(aTable) { - if( SalomeApp_Study* aStudy = dynamic_cast(anApp->activeStudy()) ) { - _PTR(SObject) TableSO = aStudy->studyDS()->FindObjectID( aTable->GetEntry() ); - if ( TableSO ) { + if ( aTable ) { + _PTR(SObject) TableSO = aStudy->studyDS()->FindObjectID( aTable->GetEntry() ); + if ( TableSO ) { + bool isTableVisible = false; + if ( aDisplayer && state != Qtx::UnpresentableState ) { _PTR(ChildIterator) Iter = aStudy->studyDS()->NewChildIterator( TableSO ); - bool isTableVisible = false; - LightApp_Displayer* aDisplayer = (dynamic_cast(anApp->activeModule()))->displayer(); - if(aDisplayer && state != Qtx::UnpresentableState ) { - for ( ; Iter->More(); Iter->Next() ) { - CORBA::Object_var childObject = VISU::ClientSObjectToObject( Iter->Value() ); - if( !CORBA::is_nil( childObject ) ) { - CORBA::Object_ptr aCurve_ptr = VISU::Curve::_narrow( childObject ); - if( !CORBA::is_nil( aCurve_ptr ) ) { - VISU::Curve_i* aCurve = dynamic_cast(VISU::GetServant(aCurve_ptr).in()); - if(aDisplayer->IsDisplayed(aCurve->GetEntry().c_str())) { - isTableVisible = true; - break; - } - } //!CORBA::is_nil( aCurve ) - } // !CORBA::is_nil( childObject ) - } //for - if(state != Qtx::UnpresentableState) - SetVisibilityState(aTable->GetEntry(), (isTableVisible ? Qtx::ShownState : Qtx::HiddenState)); - else - SetVisibilityState(aTable->GetEntry(), state); - } //aDisplayer - } //TableSO - } //aStudy - } //aTable - } //updateTable - - if(updateContainers) { - if( SalomeApp_Study* aStudy = dynamic_cast(anApp->activeStudy()) ) { - if(LightApp_Displayer* aDisplayer = (dynamic_cast(anApp->activeModule()))->displayer()) { - ContainerSet aContainers = theCurve->getContainers(); - ContainerSet::ConstIterator it = aContainers.begin(); - for(;it != aContainers.end();it++ ) { - if(state != Qtx::UnpresentableState) { - bool isContainerDisplayed = false; - _PTR(SObject) aSObject = aStudy->studyDS()->FindObjectID( (*it).toLatin1().data()); - CORBA::Object_var anObj = VISU::ClientSObjectToObject( aSObject ); - if( !CORBA::is_nil( anObj ) ) { - if(VISU::Container_i* aContainer = dynamic_cast( VISU::GetServant( anObj ).in())) { - int nbCurves = aContainer->GetNbCurves(); - for( int k=1; k<=nbCurves; k++ ) { - VISU::Curve_i* aCurve = aContainer->GetCurve( k ); - if(aCurve && aDisplayer->IsDisplayed(aCurve->GetEntry().c_str())) { - isContainerDisplayed = true; - break; - } // aCurve && aDisplater->IsDisplayed - } //for k=1 ... - SetVisibilityState(aContainer->GetEntry(), (isContainerDisplayed ? Qtx::ShownState : Qtx::HiddenState)); - } //aContainer - } //!CORBA::is_nil( anObj ) - } //state != Qtx::UnpresentableState - else { - SetVisibilityState((*it).toLatin1().data(), state); + for ( ; Iter->More() && !isTableVisible ; Iter->Next() ) { + CORBA::Object_var childObject = VISU::ClientSObjectToObject( Iter->Value() ); + if ( CORBA::is_nil( childObject ) ) continue; + VISU::Curve_i* aCurve = dynamic_cast( VISU::GetServant( childObject.in() ).in() ); + isTableVisible = aCurve && aDisplayer->IsDisplayed( aCurve->GetEntry().c_str() ); } - } // for Containers - } //aDisplayer - } //aStudy + } // if ( aDisplayer ... ) + if ( state != Qtx::UnpresentableState ) + SetVisibilityState( aTable->GetEntry(), ( isTableVisible ? Qtx::ShownState : Qtx::HiddenState ) ); + else + SetVisibilityState( aTable->GetEntry(), state ); + } // if ( TableSO ) + } // if ( aTable ) + } // if ( updateTable ) + + if ( updateContainers ) { + ContainerSet aContainers = theCurve->getContainers(); + ContainerSet::ConstIterator it = aContainers.begin(); + for ( ; it != aContainers.end(); it++ ) { + _PTR(SObject) aSObject = aStudy->studyDS()->FindObjectID( (*it).toLatin1().data() ); + if ( !aSObject ) continue; + bool isContainerDisplayed = false; + if ( aDisplayer && state != Qtx::UnpresentableState ) { + CORBA::Object_var anObj = VISU::ClientSObjectToObject( aSObject ); + if ( CORBA::is_nil( anObj ) ) continue; + VISU::Container_i* aContainer = dynamic_cast( VISU::GetServant( anObj.in() ).in() ); + if ( !aContainer ) continue; + int nbCurves = aContainer->GetNbCurves(); + for ( int k = 1; k <= nbCurves && !isContainerDisplayed; k++ ) { + VISU::Curve_i* aCurve = aContainer->GetCurve( k ); + isContainerDisplayed = aCurve && aDisplayer->IsDisplayed( aCurve->GetEntry().c_str() ); + } + } // if ( aDisplayer ... ) + if ( state != Qtx::UnpresentableState ) + SetVisibilityState( (*it).toLatin1().constData(), ( isContainerDisplayed ? Qtx::ShownState : Qtx::HiddenState ) ); + else { + SetVisibilityState( (*it).toLatin1().constData(), state ); + } + } // for ( ; it != aContainers.end(); it++ ) } //updateContainers - } - - Qtx::VisibilityState GetStateByDisplaying(int theDisplaying) { - + } + + Qtx::VisibilityState GetStateByDisplaying(int theDisplaying) + { Qtx::VisibilityState state = Qtx::UnpresentableState; if(theDisplaying == eDisplayAll || theDisplaying == eDisplay || @@ -446,40 +432,38 @@ namespace VISU return state; } - void updateContainerVisibility(VISU::Container_i* theContainer) { - if(!theContainer) - return; + void updateContainerVisibility(VISU::Container_i* theContainer) + { + if ( !theContainer ) return; - if( SUIT_Session* aSession = SUIT_Session::session() ) { - if( SalomeApp_Application* anApp = dynamic_cast(aSession->activeApplication()) ) { - if( SalomeApp_Study* aStudy = dynamic_cast(anApp->activeStudy()) ) { - Qtx::VisibilityState state = Qtx::UnpresentableState; - int nbCurves = theContainer->GetNbCurves(); - if( nbCurves > 0 ) { - if(LightApp_Displayer* aDisplayer = (dynamic_cast(anApp->activeModule()))->displayer()) { - for( int k=1; k<=nbCurves; k++ ) { - VISU::Curve_i* aCurve = theContainer->GetCurve( k ); - if(aCurve && aDisplayer->IsDisplayed(aCurve->GetEntry().c_str())) { - state = Qtx::ShownState; - break; - } - } - if ( state == Qtx::UnpresentableState) { - if( SUIT_ViewManager * vm = anApp->activeViewManager()){ - if(vm->getType() == SPlot2d_Viewer::Type()) { - state = Qtx::HiddenState; - } - } - } - } - } else if(SUIT_ViewManager * vm = anApp->activeViewManager()){ - if(vm->getType() == SPlot2d_Viewer::Type()) { - state = Qtx::HiddenState; - } - } - aStudy->setVisibilityState(theContainer->GetEntry().c_str(),state); - } + SUIT_Session* aSession = SUIT_Session::session(); + if (!aSession) return; + + SalomeApp_Application* anApp = dynamic_cast(aSession->activeApplication()); + if ( !anApp ) return; + + SalomeApp_Study* aStudy = dynamic_cast( anApp->activeStudy() ); + if ( !aStudy ) return; + + SalomeApp_Module* aModule = dynamic_cast( anApp->module( "VISU" ) ); + if ( !aModule ) return; + + SUIT_ViewManager* aManager = anApp->activeViewManager(); + Qtx::VisibilityState state = ( aManager && aManager->getType() == SPlot2d_Viewer::Type() ) ? + Qtx::HiddenState : Qtx::UnpresentableState; + + LightApp_Displayer* aDisplayer = aModule->displayer(); + + int nbCurves = theContainer->GetNbCurves(); + if ( nbCurves > 0 && aDisplayer ) { + for ( int k = 1; k <= nbCurves; k++ ) { + VISU::Curve_i* aCurve = theContainer->GetCurve( k ); + if ( aCurve && aDisplayer->IsDisplayed( aCurve->GetEntry().c_str() ) ) { + state = Qtx::ShownState; + break; + } } } + aStudy->setVisibilityState( theContainer->GetEntry().c_str(), state ); } } -- 2.39.2