X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMToolsGUI%2FGEOMToolsGUI_1.cxx;h=95086a66061934e0aaaea24cd3d06b28b0c00e09;hb=b6f0965afb72083a5234f9b4fb0b233adaaf8d9d;hp=b83b3e77e30da171467a31beb1753d5d0fb24763;hpb=09added4b04aab5affc5c928ac47ebdd06d5ff5a;p=modules%2Fgeom.git diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx index b83b3e77e..95086a660 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -55,8 +55,6 @@ #include #endif -#include - #include #include @@ -126,7 +124,7 @@ // Below macro, when uncommented, switches on simplified (more performant) algorithm // of auto-color picking up #define SIMPLE_AUTOCOLOR -// Below macro, when defined, switches on automatic layouting of OCC and Dependecy views +// Below macro, when defined, switches on automatic layouting of OCC and Dependency views // on Show Dependencies operation #define LAYOUT_DEPVIEW @@ -162,13 +160,13 @@ void GEOMToolsGUI::OnAutoColor() _PTR(Study) aStudy = appStudy->studyDS(); _PTR(SObject) aMainSObject(aStudy->FindObjectID(anIObject->getEntry())); GEOM::GEOM_Object_var aMainObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject)); - if (CORBA::is_nil(aMainObject)) return; + if (CORBA::is_nil(aMainObject) || !GeometryGUI::IsInGeomComponent( aMainSObject )) return; aMainObject->SetAutoColor( true ); QList aReservedColors; - GEOM_Displayer displayer ( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -231,7 +229,7 @@ void GEOMToolsGUI::OnDisableAutoColor() _PTR(Study) aStudy = appStudy->studyDS(); _PTR(SObject) aMainSObject( aStudy->FindObjectID( anIObject->getEntry() ) ); GEOM::GEOM_Object_var aMainObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject)); - if( CORBA::is_nil( aMainObject ) ) + if( CORBA::is_nil( aMainObject ) || !GeometryGUI::IsInGeomComponent( aMainSObject )) return; aMainObject->SetAutoColor( false ); @@ -256,7 +254,7 @@ void GEOMToolsGUI::OnColor() aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; // get active view SALOME_View* window = displayer.GetActiveView(); @@ -308,7 +306,7 @@ void GEOMToolsGUI::OnTexture() aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -351,7 +349,7 @@ void GEOMToolsGUI::OnChangeTransparency( bool increase ) aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -396,7 +394,7 @@ void GEOMToolsGUI::OnNbIsos( ActionType actionType ) aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -466,14 +464,14 @@ void GEOMToolsGUI::OnDeflection() aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; int aMgrId = dynamic_cast< SUIT_ViewModel* >( window )->getViewManager()->getGlobalId(); QVariant v = appStudy->getObjectProperty( aMgrId, selected.First()->getEntry(), GEOM::propertyName( GEOM::Deflection ), QVariant() ); - double aDC = v.isValid() ? v.toDouble() : SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "deflection_coef", 0.001 ); + double aDC = v.isValid() ? v.toDouble() : SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "deflection_coeff", 0.001 ); GEOMToolsGUI_DeflectionDlg * DeflectionDlg = new GEOMToolsGUI_DeflectionDlg ( SUIT_Session::session()->activeApplication()->desktop() ); @@ -496,8 +494,7 @@ void GEOMToolsGUI::OnSelectOnly(int mode) { SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if ( app ) { - SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); - GEOM_Displayer aDisp (appStudy); + GEOM_Displayer aDisp; aDisp.GlobalSelection(mode); getGeometryGUI()->setLocalSelectionMode(mode); } @@ -530,6 +527,8 @@ void GEOMToolsGUI::OnDiscloseConcealChildren( bool show ) return; } + SUIT_OverrideCursor wc; + bool toUpdateColorScale = disp->SetUpdateColorScale( false ); // IPAL54049 for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { Handle(SALOME_InteractiveObject) IObject = It.Value(); @@ -538,10 +537,12 @@ void GEOMToolsGUI::OnDiscloseConcealChildren( bool show ) if ( obj ) { _PTR(AttributeExpandable) aExp = B->FindOrCreateAttribute( obj, "AttributeExpandable" ); aExp->SetExpandable( show ); - if(!show) + if ( !show ) { disp->EraseWithChildren(IObject,true); + } } // if ( obj ) } // iterator + disp->SetUpdateColorScale( toUpdateColorScale ); } } app->updateObjectBrowser( false ); @@ -593,7 +594,8 @@ void GEOMToolsGUI::OnUnpublishObject() { QObject::tr( "WRN_STUDY_LOCKED" ) ); return; } - + SUIT_OverrideCursor wc; + bool toUpdateColorScale = disp->SetUpdateColorScale( false ); // IPAL54049 for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { Handle(SALOME_InteractiveObject) IObject = It.Value(); @@ -605,20 +607,20 @@ void GEOMToolsGUI::OnUnpublishObject() { disp->EraseWithChildren(IObject); // hide references if any std::vector< _PTR(SObject) > vso = aStudy->FindDependances(obj); - for ( int i = 0; i < vso.size(); i++ ) { + for ( int i = 0; i < (int)vso.size(); i++ ) { _PTR(SObject) refObj = vso[i]; aDrw = B->FindOrCreateAttribute( refObj, "AttributeDrawable" ); aDrw->SetDrawable( false ); } } // if ( obj ) } // iterator + disp->SetUpdateColorScale( toUpdateColorScale ); // IPAL54049 aSelMgr->clearSelected(); } } app->updateObjectBrowser( false ); app->updateActions(); } - } void GEOMToolsGUI::OnPublishObject() { @@ -665,7 +667,7 @@ void GEOMToolsGUI::OnEdgeWidth() aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -708,7 +710,7 @@ void GEOMToolsGUI::OnIsosWidth() { aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -750,7 +752,7 @@ void GEOMToolsGUI::OnBringToFront() { aSelMgr->selectedObjects( selected ); if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -776,7 +778,7 @@ void GEOMToolsGUI::OnClsBringToFront() { SalomeApp_Study* appStudy = dynamic_cast< SalomeApp_Study* >( app->activeStudy() ); if ( !appStudy ) return; - GEOM_Displayer displayer( appStudy ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -815,7 +817,7 @@ void GEOMToolsGUI::OnSetMaterial( const QVariant& theParam ) if ( selected.IsEmpty() ) return; - GEOM_Displayer displayer( study ); + GEOM_Displayer displayer; SALOME_View* window = displayer.GetActiveView(); if ( !window ) return; @@ -856,8 +858,8 @@ void GEOMToolsGUI::OnCreateFolder() _PTR(SObject) aFatherSO(aStudy->FindObjectID(anIObject->getEntry())); if ( !aFatherSO ) return; - GeometryGUI::GetGeomGen()->CreateFolder( tr("NEW_FOLDER_NAME").toLatin1().constData(), - _CAST(SObject, aFatherSO)->GetSObject() ); + GeometryGUI::GetGeomGen()->CreateFolder( tr("NEW_FOLDER_NAME").toUtf8().constData(), + _CAST(SObject, aFatherSO)->GetSObject() ); app->updateObjectBrowser( false ); } @@ -891,7 +893,7 @@ void GEOMToolsGUI::OnSortChildren() #ifndef DISABLE_GRAPHICSVIEW void GEOMToolsGUI::OnShowDependencyTree() { - SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + //SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if ( !app ) return;