From: vsr Date: Tue, 4 Sep 2012 08:47:15 +0000 (+0000) Subject: 0021827: [CEA 650] TUI setColor on an object displayed in wireframe is ignored X-Git-Tag: V6_6_0a1~37 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=2bbf469c10cbe21b126f82ac66f511987048a843;p=modules%2Fgeom.git 0021827: [CEA 650] TUI setColor on an object displayed in wireframe is ignored --- diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx index 925585ca6..5caf5d56d 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx @@ -283,6 +283,8 @@ void GEOMToolsGUI::SetColor( const QString& entry, const QColor& color, bool /*u // get active view SUIT_ViewWindow* window = app->desktop()->activeWindow(); + if ( !window ) return; + bool isOCC = ( window && window->getViewManager()->getType() == OCCViewer_Viewer::Type() ); bool isVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() ); diff --git a/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.cxx b/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.cxx index f423db40e..616fd5097 100644 --- a/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.cxx +++ b/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.cxx @@ -463,43 +463,7 @@ void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue, boo virtual void Execute() { SUIT_Application* anApp = SUIT_Session::session()->activeApplication(); if (!anApp) return; - GEOMToolsGUI::SetColor( myEntry, QColor( myRed, myGreen, myBlue), myUpdateViewer ); - /* - Handle(SALOME_InteractiveObject) anIO = - new SALOME_InteractiveObject(myEntry.c_str(), "GEOM", ""); - - if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)){ - SVTK_View* aView = aViewWindow->getView(); - QColor aColor (myRed, myGreen, myBlue); - aView->SetColor(anIO, aColor); - if (myUpdateViewer) - aView->Repaint(); - } else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) { - Handle(AIS_InteractiveContext) ic = occViewer->getAISContext(); - SOCC_Viewer* soccViewer = dynamic_cast(occViewer); - if (soccViewer) - { - SALOME_Prs* prs= soccViewer->CreatePrs( myEntry.c_str() ); - const SOCC_Prs* anOCCPrs = dynamic_cast( prs ); - if ( !anOCCPrs || anOCCPrs->IsNull() ) - return; - - // get objects to be displayed - AIS_ListOfInteractive anAISObjects; - anOCCPrs->GetObjects( anAISObjects ); - AIS_ListIteratorOfListOfInteractive ite( anAISObjects ); - Quantity_Color CSFColor = Quantity_Color(myRed/255., myGreen/255., myBlue/255., Quantity_TOC_RGB); - for ( ; ite.More(); ite.Next() ) - { - if(!ic->IsDisplayed(ite.Value()))continue; //only displayed ais - ite.Value()->SetColor(CSFColor); - if (ite.Value()->IsKind(STANDARD_TYPE(GEOM_AISShape))) Handle(GEOM_AISShape)::DownCast(ite.Value())->SetShadingColor(CSFColor); - ite.Value()->Redisplay(Standard_True); // as in OnColor - } - if (myUpdateViewer) occViewer->update(); - } - }*/ } }; ProcessVoidEvent(new TEvent(theEntry, red, green, blue, isUpdated));