X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMGUI%2FGEOMGUI_Selection.cxx;h=af266c29842d00068b4eaed54508dab773daf614;hb=2dbe613765884256942925d8a95293e3c473caec;hp=7af013b20b3ebd1c29c335a75a03ba837e148131;hpb=a283b389c811dd9e363f9505e943456b1cbb253a;p=modules%2Fgeom.git diff --git a/src/GEOMGUI/GEOMGUI_Selection.cxx b/src/GEOMGUI/GEOMGUI_Selection.cxx index 7af013b20..af266c298 100644 --- a/src/GEOMGUI/GEOMGUI_Selection.cxx +++ b/src/GEOMGUI/GEOMGUI_Selection.cxx @@ -17,24 +17,22 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// File : GEOMGUI_Selection.cxx +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com) +// + #include "GEOMGUI_Selection.h" #include "GeometryGUI.h" #include "GEOM_Displayer.h" -#include #include #include -#include - +#include #include #include #include -#include - -#include -#include #include #include @@ -46,7 +44,7 @@ #include #include -#include "GEOMImpl_Types.hxx" +#include // OCCT Includes #include @@ -57,6 +55,7 @@ #include GEOMGUI_Selection::GEOMGUI_Selection() +: LightApp_Selection() { } @@ -64,26 +63,28 @@ GEOMGUI_Selection::~GEOMGUI_Selection() { } -QtxValue GEOMGUI_Selection::globalParam( const QString& p ) const +QVariant GEOMGUI_Selection::parameter( const QString& p ) const { - if ( p == "isOCC" ) return QtxValue( activeViewType() == OCCViewer_Viewer::Type() ); + if ( p == "isOCC" ) return QVariant( activeViewType() == OCCViewer_Viewer::Type() ); if ( p == "selectionmode" ){ - return QtxValue(selectionMode()); + return QVariant(selectionMode()); } - return LightApp_Selection::globalParam( p ); + return LightApp_Selection::parameter( p ); } -QtxValue GEOMGUI_Selection::param( const int ind, const QString& p ) const +QVariant GEOMGUI_Selection::parameter( const int ind, const QString& p ) const { -// if ( p == "isVisible" ) return QtxValue( isVisible( ind ) ); +// if ( p == "isVisible" ) return QVariant( isVisible( ind ) ); // parameter isVisible is calculated in base SalomeApp_Selection // else if( p == "type" ) - return QtxValue( typeName( ind ) ); + return QVariant( typeName( ind ) ); else if ( p == "displaymode" ) - return QtxValue( displayMode( ind ) ); + return QVariant( displayMode( ind ) ); + else if ( p == "isAutoColor" ) + return QVariant( isAutoColor( ind ) ); else - return LightApp_Selection::param( ind, p ); + return LightApp_Selection::parameter( ind, p ); } QString GEOMGUI_Selection::typeName( const int index ) const @@ -106,18 +107,26 @@ bool GEOMGUI_Selection::isVisible( const int index ) const GEOM::GEOM_Object_var obj = getObject( index ); SALOME_View* view = GEOM_Displayer::GetActiveView(); if ( !CORBA::is_nil( obj ) && view ) { - Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject( entry( index ).latin1(), "GEOM", "TEMP_IO" ); + Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject( entry( index ).toLatin1().constData(), "GEOM", "TEMP_IO" ); return view->isVisible( io ); } return false; } +bool GEOMGUI_Selection::isAutoColor( const int index ) const +{ + GEOM::GEOM_Object_var obj = getObject( index ); + if ( !CORBA::is_nil( obj ) ) + return obj->GetAutoColor(); + return false; +} + QString GEOMGUI_Selection::displayMode( const int index ) const { SALOME_View* view = GEOM_Displayer::GetActiveView(); QString viewType = activeViewType(); if ( view /*fix for 9320==>*/&& ( viewType == OCCViewer_Viewer::Type() || viewType == SVTK_Viewer::Type() ) ) { - SALOME_Prs* prs = view->CreatePrs( entry( index ) ); + SALOME_Prs* prs = view->CreatePrs( entry( index ).toLatin1().constData() ); if ( prs ) { if ( viewType == OCCViewer_Viewer::Type() ) { // assuming OCC SOCC_Prs* occPrs = (SOCC_Prs*) prs; @@ -177,7 +186,7 @@ bool GEOMGUI_Selection::isComponent( const int index ) const QString anEntry = entry( index ); if ( study && !anEntry.isNull() ) { - _PTR(SObject) aSO( study->FindObjectID( anEntry.latin1() ) ); + _PTR(SObject) aSO( study->FindObjectID( anEntry.toStdString() ) ); if ( aSO && aSO->GetFatherComponent() ) return aSO->GetFatherComponent()->GetIOR() == aSO->GetIOR(); } @@ -195,7 +204,7 @@ GEOM::GEOM_Object_ptr GEOMGUI_Selection::getObject( const int index ) const QString anEntry = entry(index); if (study && !anEntry.isNull()) { - _PTR(SObject) aSO (study->FindObjectID(anEntry.latin1())); + _PTR(SObject) aSO (study->FindObjectID(anEntry.toStdString())); if (aSO) { CORBA::Object_var anObj = GeometryGUI::ClientSObjectToObject(aSO); return GEOM::GEOM_Object::_narrow(anObj); @@ -205,14 +214,14 @@ GEOM::GEOM_Object_ptr GEOMGUI_Selection::getObject( const int index ) const return GEOM::GEOM_Object::_nil(); } -QString GEOMGUI_Selection:: selectionMode() const -{ +QString GEOMGUI_Selection::selectionMode() const +{ SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication()); if (app) { GeometryGUI* aGeomGUI = dynamic_cast( app->module( "Geometry" ) ); - if(aGeomGUI) - switch(aGeomGUI->getLocalSelectionMode()) - { + if (aGeomGUI) { + switch (aGeomGUI->getLocalSelectionMode()) + { case GEOM_POINT : return "VERTEX"; case GEOM_EDGE : return "EDGE"; case GEOM_WIRE : return "WIRE"; @@ -222,6 +231,8 @@ QString GEOMGUI_Selection:: selectionMode() const case GEOM_COMPOUND : return "COMPOUND"; case GEOM_ALLOBJECTS : return "ALL"; default: return ""; - } + } + } } + return ""; }