mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-04 21:34:17 +05:00
52941: Remove selected group does't work in sewing operation
This commit is contained in:
parent
a0487332cf
commit
abd8d64dea
@ -826,12 +826,13 @@ bool SMESHGUI_SewingDlg::haveBorders()
|
|||||||
|
|
||||||
QString SMESHGUI_SewingDlg::getPartText(const SMESH::FreeBorderPart& aPART)
|
QString SMESHGUI_SewingDlg::getPartText(const SMESH::FreeBorderPart& aPART)
|
||||||
{
|
{
|
||||||
|
typedef CORBA::Long TInt;
|
||||||
QString text;
|
QString text;
|
||||||
if ( 0 <= aPART.border && aPART.border < myBorders->borders.length() )
|
if ( 0 <= aPART.border && aPART.border < (TInt)myBorders->borders.length() )
|
||||||
{
|
{
|
||||||
const SMESH::FreeBorder& aBRD = myBorders->borders[ aPART.border ];
|
const SMESH::FreeBorder& aBRD = myBorders->borders[ aPART.border ];
|
||||||
if ( 0 <= aPART.node1 && aPART.node1 < aBRD.nodeIDs.length() &&
|
if ( 0 <= aPART.node1 && aPART.node1 < (TInt)aBRD.nodeIDs.length() &&
|
||||||
0 <= aPART.nodeLast && aPART.nodeLast < aBRD.nodeIDs.length() )
|
0 <= aPART.nodeLast && aPART.nodeLast < (TInt)aBRD.nodeIDs.length() )
|
||||||
{
|
{
|
||||||
text += QString("( %1 %2 %3 ) ")
|
text += QString("( %1 %2 %3 ) ")
|
||||||
.arg( aBRD.nodeIDs[ aPART.node1 ] )
|
.arg( aBRD.nodeIDs[ aPART.node1 ] )
|
||||||
@ -853,7 +854,7 @@ QString SMESHGUI_SewingDlg::getGroupText(int groupIndex)
|
|||||||
|
|
||||||
if ( haveBorders() &&
|
if ( haveBorders() &&
|
||||||
groupIndex >= 0 &&
|
groupIndex >= 0 &&
|
||||||
groupIndex < myBorders->coincidentGroups.length() )
|
groupIndex < (int)myBorders->coincidentGroups.length() )
|
||||||
{
|
{
|
||||||
const SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ groupIndex ];
|
const SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ groupIndex ];
|
||||||
|
|
||||||
@ -934,7 +935,7 @@ void SMESHGUI_SewingDlg::onRemoveGroupClicked()
|
|||||||
delete item;
|
delete item;
|
||||||
if ( myBorderDisplayers[ groupIndex ])
|
if ( myBorderDisplayers[ groupIndex ])
|
||||||
myBorderDisplayers[ groupIndex ]->Hide();
|
myBorderDisplayers[ groupIndex ]->Hide();
|
||||||
SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
|
SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ groupIndex ];
|
||||||
aGRP.length( 0 );
|
aGRP.length( 0 );
|
||||||
}
|
}
|
||||||
myBusy = false;
|
myBusy = false;
|
||||||
@ -958,7 +959,7 @@ void SMESHGUI_SewingDlg::showGroup( QListWidgetItem* item )
|
|||||||
int groupIndex = item->data( GROUP_INDEX ).toInt();
|
int groupIndex = item->data( GROUP_INDEX ).toInt();
|
||||||
QColor groupColor = item->data( GROUP_COLOR ).value<QColor>();
|
QColor groupColor = item->data( GROUP_COLOR ).value<QColor>();
|
||||||
if ( groupIndex >= 0 &&
|
if ( groupIndex >= 0 &&
|
||||||
groupIndex < myBorders->coincidentGroups.length() )
|
groupIndex < (int)myBorders->coincidentGroups.length() )
|
||||||
{
|
{
|
||||||
if ( !myBorderDisplayers[ groupIndex ] && SMESH::GetCurrentVtkView())
|
if ( !myBorderDisplayers[ groupIndex ] && SMESH::GetCurrentVtkView())
|
||||||
myBorderDisplayers[ groupIndex ] = new BorderGroupDisplayer( myBorders, groupIndex, groupColor, myMesh );
|
myBorderDisplayers[ groupIndex ] = new BorderGroupDisplayer( myBorders, groupIndex, groupColor, myMesh );
|
||||||
@ -984,7 +985,7 @@ bool SMESHGUI_SewingDlg::setCurrentGroup()
|
|||||||
|
|
||||||
myCurGroupIndex = selItems[0]->data( GROUP_INDEX ).toInt();
|
myCurGroupIndex = selItems[0]->data( GROUP_INDEX ).toInt();
|
||||||
|
|
||||||
return ( myCurGroupIndex >= 0 && myCurGroupIndex < myBorders->coincidentGroups.length() );
|
return ( myCurGroupIndex >= 0 && myCurGroupIndex < (int)myBorders->coincidentGroups.length() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -1003,7 +1004,7 @@ bool SMESHGUI_SewingDlg::setCurrentPart()
|
|||||||
myCurPartIndex = ListEdit->currentRow();
|
myCurPartIndex = ListEdit->currentRow();
|
||||||
const SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
|
const SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
|
||||||
|
|
||||||
return ( myCurPartIndex >= 0 && myCurPartIndex < aGRP.length() );
|
return ( myCurPartIndex >= 0 && myCurPartIndex < (int)aGRP.length() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -1192,15 +1193,18 @@ void SMESHGUI_SewingDlg::onRemoveElemClicked()
|
|||||||
|
|
||||||
SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
|
SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
|
||||||
|
|
||||||
|
myBusy = true;
|
||||||
QList<QListWidgetItem*> selItems = ListEdit->selectedItems();
|
QList<QListWidgetItem*> selItems = ListEdit->selectedItems();
|
||||||
for ( int i = 0; i < selItems.count(); ++i )
|
for ( int i = 0; i < selItems.count(); ++i )
|
||||||
{
|
{
|
||||||
int part = ListEdit->row( selItems[i] );
|
int part = ListEdit->row( selItems[i] );
|
||||||
for ( ; part + 1 < aGRP.length(); ++part )
|
for ( ; part + 1 < (int)aGRP.length(); ++part )
|
||||||
aGRP[ part ] = aGRP[ part + 1 ];
|
aGRP[ part ] = aGRP[ part + 1 ];
|
||||||
aGRP.length( aGRP.length() - 1 );
|
if ( aGRP.length() > 0 )
|
||||||
|
aGRP.length( aGRP.length() - 1 );
|
||||||
delete selItems[i];
|
delete selItems[i];
|
||||||
}
|
}
|
||||||
|
myBusy = false;
|
||||||
|
|
||||||
if ( aGRP.length() == 0 )
|
if ( aGRP.length() == 0 )
|
||||||
onRemoveGroupClicked();
|
onRemoveGroupClicked();
|
||||||
@ -1944,6 +1948,7 @@ void SMESHGUI_SewingDlg::BorderGroupDisplayer::getPartEnds( int p
|
|||||||
std::vector<int> & ids,
|
std::vector<int> & ids,
|
||||||
std::list<gp_XYZ>& coords)
|
std::list<gp_XYZ>& coords)
|
||||||
{
|
{
|
||||||
|
if ( partIndex >= (int)myGroup.length() ) return;
|
||||||
const SMESH::FreeBorderPart& aPART = myGroup [ partIndex ];
|
const SMESH::FreeBorderPart& aPART = myGroup [ partIndex ];
|
||||||
const SMESH::FreeBorder& aBRD = myBorders[ aPART.border ];
|
const SMESH::FreeBorder& aBRD = myBorders[ aPART.border ];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user