mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-19 17:53:08 +05:00
0014047: EDF PAL 334 : Problem to select merged face with Create group window
hide a previously invisivle second shape in case of "Only sub-shapes of the Second shape" restriction
This commit is contained in:
parent
0720f7ba9b
commit
8cef831218
@ -48,7 +48,7 @@
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
#include <TColStd_DataMapIteratorOfDataMapOfIntegerInteger.hxx>
|
||||
|
||||
enum { ALL_SUBSHAPES = 0, GET_IN_PLACE, SUBSHAPES_OF_SHAPE2 };
|
||||
enum { ALL_SUBSHAPES = 0, GET_IN_PLACE, SUBSHAPES_OF_SHAPE2, SUBSHAPES_OF_INVISIBLE_SHAPE2 };
|
||||
|
||||
GroupGUI_GroupDlg::GroupGUI_GroupDlg( Mode mode, GeometryGUI* theGeometryGUI, QWidget* parent )
|
||||
: GEOMBase_Skeleton( theGeometryGUI, parent, false ),
|
||||
@ -382,7 +382,10 @@ void GroupGUI_GroupDlg::onGetInPlace()
|
||||
setInPlaceObj( aGetInPlaceObj );
|
||||
}
|
||||
else {
|
||||
setInPlaceObj( anObj );
|
||||
bool isVisible = true;
|
||||
if ( SALOME_View* view = GEOM_Displayer::GetActiveView() )
|
||||
isVisible = view->isVisible( aSelList.First() );
|
||||
setInPlaceObj( anObj, isVisible );
|
||||
}
|
||||
myEditCurrentArgument = 0;
|
||||
//myBusy = true; // just activate but do not select in the list
|
||||
@ -397,14 +400,16 @@ void GroupGUI_GroupDlg::onGetInPlace()
|
||||
//purpose : temporarily add an object to study and remove old InPlaceObj
|
||||
//=======================================================================
|
||||
|
||||
void GroupGUI_GroupDlg::setInPlaceObj( GEOM::GEOM_Object_var theObj )
|
||||
void GroupGUI_GroupDlg::setInPlaceObj( GEOM::GEOM_Object_var theObj, const bool isVisible )
|
||||
{
|
||||
if ( ! myInPlaceObj->_is_equivalent( theObj ) )
|
||||
{
|
||||
const char* tmpName = "__InPlaceObj__";
|
||||
// remove old InPlaceObj
|
||||
if ( !myInPlaceObj->_is_nil() ) {
|
||||
if ( myInPlaceObjSelectWay == GET_IN_PLACE ) { // hide temporary object
|
||||
if ( myInPlaceObjSelectState == GET_IN_PLACE ||
|
||||
myInPlaceObjSelectState == SUBSHAPES_OF_INVISIBLE_SHAPE2 ) {
|
||||
// hide temporary object or initially invisible shape 2 (issue 0014047)
|
||||
GEOM_Displayer aDisplayer(getStudy());
|
||||
aDisplayer.Erase( myInPlaceObj, true );
|
||||
}
|
||||
@ -436,7 +441,9 @@ void GroupGUI_GroupDlg::setInPlaceObj( GEOM::GEOM_Object_var theObj )
|
||||
myMain2InPlaceIndices.Bind( aMainIndex, aPlaceIndex );
|
||||
}
|
||||
}
|
||||
myInPlaceObjSelectWay = subSelectionWay();
|
||||
myInPlaceObjSelectState = subSelectionWay();
|
||||
if ( myInPlaceObjSelectState == SUBSHAPES_OF_SHAPE2 && !isVisible )
|
||||
myInPlaceObjSelectState = SUBSHAPES_OF_INVISIBLE_SHAPE2;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
|
@ -86,7 +86,7 @@ private:
|
||||
void updateState();
|
||||
void highlightSubShapes();
|
||||
void onGetInPlace();
|
||||
void setInPlaceObj( GEOM::GEOM_Object_var );
|
||||
void setInPlaceObj( GEOM::GEOM_Object_var, const bool isVisible=1);
|
||||
|
||||
private:
|
||||
Mode myMode;
|
||||
@ -94,7 +94,7 @@ private:
|
||||
GEOM::GEOM_Object_var myMainObj;
|
||||
GEOM::GEOM_Object_var myGroup;
|
||||
GEOM::GEOM_Object_var myInPlaceObj;
|
||||
int myInPlaceObjSelectWay;
|
||||
int myInPlaceObjSelectState;
|
||||
TColStd_DataMapOfIntegerInteger myMain2InPlaceIndices;
|
||||
|
||||
QPushButton* mySelBtn;
|
||||
|
Loading…
Reference in New Issue
Block a user