X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_SubShapeSelectorWdg.cxx;h=ef3dbe164e9a63ce5e6662033a80844cb8e463f0;hb=6883e45c6b4bf088fa71d0299d3a35383f283fbe;hp=808abf83f08156e25098964adfd7db39a05e8c75;hpb=afb2a8e7814693a4c0b7348fa38fd05a340e7d97;p=modules%2Fsmesh.git diff --git a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx index 808abf83f..ef3dbe164 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -72,8 +72,8 @@ StdMeshersGUI_SubShapeSelectorWdg ::StdMeshersGUI_SubShapeSelectorWdg( QWidget * parent, TopAbs_ShapeEnum aSubShType ): QWidget( parent ), - myPreviewActor( 0 ), - myMaxSize( -1 ) + myMaxSize( -1 ), + myPreviewActor( 0 ) { QPixmap image0( SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap( "SMESH", tr( "ICON_SELECT" ) ) ); @@ -288,7 +288,9 @@ void StdMeshersGUI_SubShapeSelectorWdg::selectionIntoArgument() } } } - } else if ( aGeomObj->GetType() == 28 /*GEOM_SUBSHAPE*/ ) { + } else if ( aGeomObj->GetType() == 28 /*GEOM_SUBSHAPE*/ || + myEntry == IO->getEntry() ) + { GEOMBase::GetShape(aGeomObj, shape); if ( !shape.IsNull() && shape.ShapeType() == mySubShType ) { int index = myPreviewActor->GetIndexByShape( shape ); @@ -416,12 +418,15 @@ void StdMeshersGUI_SubShapeSelectorWdg::onListSelectionChanged() return; //mySelectionMgr->clearSelected(); - TColStd_MapOfInteger aIndexes; + myPreviewActor->HighlightAll( false ); QList selItems = myListWidget->selectedItems(); QListWidgetItem* anItem; foreach(anItem, selItems) myPreviewActor->HighlightID( anItem->text().toInt() ); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->Repaint(); + // update remove button myRemoveButton->setEnabled( selItems.size() > 0 ); @@ -530,9 +535,6 @@ SMESH::long_array_var StdMeshersGUI_SubShapeSelectorWdg::GetListOfIDs() { SMESH::long_array_var anArray = new SMESH::long_array; - // if ( myMainEntry != "" && myIsNotCorrected ) - // myListOfIDs = GetCorrectedListOfIDs( true ); - int size = myListOfIDs.size(); anArray->length( size ); for (int i = 0; i < size; i++) @@ -575,17 +577,6 @@ bool StdMeshersGUI_SubShapeSelectorWdg::SetListOfIDs( SMESH::long_array_var theI return isOk; } -//================================================================================= -// function : SetMainShapeEntry -// purpose : Called to set the Entry of main shape of the mesh -//================================================================================= -// void StdMeshersGUI_SubShapeSelectorWdg::SetMainShapeEntry( const QString& theEntry ) -// { -// myMainEntry = theEntry; -// myMainShape = GetTopoDSByEntry( theEntry ); -// myIsNotCorrected = true; -// } - //================================================================================= // function : GetMainShapeEntry // purpose : Called to get the Main Object Entry @@ -596,82 +587,6 @@ const char* StdMeshersGUI_SubShapeSelectorWdg::GetMainShapeEntry() return myMainEntry.c_str(); } -//================================================================================= -// function : GetCorrectedListOfIds -// purpose : Called to convert the list of IDs from sub-shape IDs to main shape IDs -//================================================================================= -// QList -// StdMeshersGUI_SubShapeSelectorWdg::GetCorrectedListOfIDs( bool fromSubshapeToMainshape, -// bool* isOK ) -// { -// if (( myMainShape.IsNull() || myGeomShape.IsNull() ) && fromSubshapeToMainshape ) -// return myListOfIDs; -// else if (( myMainShape.IsNull() /*||*/&& myGeomShape.IsNull() ) && !fromSubshapeToMainshape ) -// return mySelectedIDs; - -// if ( !fromSubshapeToMainshape ) // called from SetListOfIDs -// { -// if ( myMainShape.IsNull() ) -// std::swap( myMainShape, myGeomShape ); -// } - -// QList aList; -// TopTools_IndexedMapOfShape aGeomMap, aMainMap; -// TopExp::MapShapes(myMainShape, aMainMap); -// if ( !myGeomShape.IsNull() ) -// TopExp::MapShapes(myGeomShape, aGeomMap); - -// bool ok = true; -// if ( fromSubshapeToMainshape ) // convert indexes from sub-shape to mainshape -// { -// int size = myListOfIDs.size(); -// for (int i = 0; i < size; i++) { -// int index = myListOfIDs.at(i); -// if ( aGeomMap.Extent() < index ) -// { -// ok = false; -// } -// else -// { -// TopoDS_Shape aSubShape = aGeomMap.FindKey( index ); -// if ( mySubShType != aSubShape.ShapeType() ) -// ok = false; -// if ( !aMainMap.Contains( aSubShape )) -// ok = false; -// else -// index = aMainMap.FindIndex( aSubShape ); -// } -// aList.append( index ); -// } -// myIsNotCorrected = false; -// } -// else // convert indexes from main shape to sub-shape, or just check indices -// { -// int size = mySelectedIDs.size(); -// for (int i = 0; i < size; i++) { -// int index = mySelectedIDs.at(i); -// if ( aMainMap.Extent() < index ) -// { -// ok = false; -// } -// else -// { -// TopoDS_Shape aSubShape = aMainMap.FindKey( index ); -// if ( mySubShType != aSubShape.ShapeType() ) -// ok = false; -// if ( !aGeomMap.Contains( aSubShape ) && !aGeomMap.IsEmpty() ) -// ok = false; -// else -// index = aGeomMap.FindIndex( aSubShape ); -// } -// aList.append( index ); -// } -// } -// if ( isOK ) *isOK = ok; - -// return aList; -// } - void StdMeshersGUI_SubShapeSelectorWdg::updateButtons() { if ( myPreviewActor ) {