X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_SewingDlg.cxx;h=ca6c7293bc7cceaebe4cd8ba0f372431436c7cc1;hb=86be227dee12b1a2d7dafc3308597f1566ef950f;hp=d7a47f7d08a6bbf466eed370c439a137cd5ebf32;hpb=193c49c87753b6ccabb2b5e6dc935aa480d2d43e;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx index d7a47f7d0..ca6c7293b 100644 --- a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -452,7 +452,7 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule ) mySMESHGUI->SetActiveDialogBox((QDialog*)this); - myHelpFileName = "sewing_meshes_page.html"; + myHelpFileName = "sewing_meshes.html"; myActor = 0; myStoredEntityMode = 0; @@ -826,12 +826,13 @@ bool SMESHGUI_SewingDlg::haveBorders() QString SMESHGUI_SewingDlg::getPartText(const SMESH::FreeBorderPart& aPART) { + typedef CORBA::Long TInt; 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 ]; - if ( 0 <= aPART.node1 && aPART.node1 < aBRD.nodeIDs.length() && - 0 <= aPART.nodeLast && aPART.nodeLast < aBRD.nodeIDs.length() ) + if ( 0 <= aPART.node1 && aPART.node1 < (TInt)aBRD.nodeIDs.length() && + 0 <= aPART.nodeLast && aPART.nodeLast < (TInt)aBRD.nodeIDs.length() ) { text += QString("( %1 %2 %3 ) ") .arg( aBRD.nodeIDs[ aPART.node1 ] ) @@ -853,7 +854,7 @@ QString SMESHGUI_SewingDlg::getGroupText(int groupIndex) if ( haveBorders() && groupIndex >= 0 && - groupIndex < myBorders->coincidentGroups.length() ) + groupIndex < (int)myBorders->coincidentGroups.length() ) { const SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ groupIndex ]; @@ -934,7 +935,7 @@ void SMESHGUI_SewingDlg::onRemoveGroupClicked() delete item; if ( myBorderDisplayers[ groupIndex ]) myBorderDisplayers[ groupIndex ]->Hide(); - SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ]; + SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ groupIndex ]; aGRP.length( 0 ); } myBusy = false; @@ -958,7 +959,7 @@ void SMESHGUI_SewingDlg::showGroup( QListWidgetItem* item ) int groupIndex = item->data( GROUP_INDEX ).toInt(); QColor groupColor = item->data( GROUP_COLOR ).value(); if ( groupIndex >= 0 && - groupIndex < myBorders->coincidentGroups.length() ) + groupIndex < (int)myBorders->coincidentGroups.length() ) { if ( !myBorderDisplayers[ groupIndex ] && SMESH::GetCurrentVtkView()) myBorderDisplayers[ groupIndex ] = new BorderGroupDisplayer( myBorders, groupIndex, groupColor, myMesh ); @@ -984,7 +985,7 @@ bool SMESHGUI_SewingDlg::setCurrentGroup() 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(); 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 ]; + myBusy = true; QList selItems = ListEdit->selectedItems(); for ( int i = 0; i < selItems.count(); ++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.length( aGRP.length() - 1 ); + if ( aGRP.length() > 0 ) + aGRP.length( aGRP.length() - 1 ); delete selItems[i]; } + myBusy = false; if ( aGRP.length() == 0 ) onRemoveGroupClicked(); @@ -1239,16 +1243,16 @@ void SMESHGUI_SewingDlg::onMoveBorderEnd(int button) { aPRT.node1 = ( aPRT.node1 + size + dn ) % size; aPRT.node2 = ( aPRT.node2 + size + dn ) % size; - break; } + break; case MOVE_LEFT_2: case MOVE_RIGHT_2: if (( isClosed ) || ( 0 <= aPRT.nodeLast+dn && aPRT.nodeLast+dn < size )) { aPRT.nodeLast = ( aPRT.nodeLast + size + dn ) % size; - break; } + break; default: return; // impossible to move } @@ -1289,7 +1293,7 @@ void SMESHGUI_SewingDlg::onSwapClicked() //================================================================================= bool SMESHGUI_SewingDlg::ClickOnApply() { - if (mySMESHGUI->isActiveStudyLocked()) + if (SMESHGUI::isStudyLocked()) return false; bool aResult = false; @@ -1304,7 +1308,7 @@ bool SMESHGUI_SewingDlg::ClickOnApply() SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); int aConstructorId = GetConstructorId(); - SMESH::SMESH_MeshEditor::Sew_Error anError; + SMESH::SMESH_MeshEditor::Sew_Error anError = SMESH::SMESH_MeshEditor::SEW_OK; if (aConstructorId == 0) { @@ -1528,7 +1532,7 @@ void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText) else if (send == LineEdit6) myOk6 = false; - // hilight entered elements/nodes + // highlight entered elements/nodes SMDS_Mesh* aMesh = 0; if (myActor) @@ -1580,8 +1584,8 @@ void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText) if (e) newIndices.Add(e->GetID()); - if (!isEvenOneExists) - isEvenOneExists = true; + if (!isEvenOneExists) + isEvenOneExists = true; } mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false); @@ -1794,7 +1798,7 @@ void SMESHGUI_SewingDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void SMESHGUI_SewingDlg::enterEvent (QEvent* e) +void SMESHGUI_SewingDlg::enterEvent (QEvent* /*e*/) { if (!ConstructorsBox->isEnabled()) { SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); @@ -1944,16 +1948,21 @@ void SMESHGUI_SewingDlg::BorderGroupDisplayer::getPartEnds( int p std::vector & ids, std::list& coords) { + if ( partIndex >= (int)myGroup.length() ) return; const SMESH::FreeBorderPart& aPART = myGroup [ partIndex ]; const SMESH::FreeBorder& aBRD = myBorders[ aPART.border ]; ids.push_back( aBRD.nodeIDs[ aPART.node1 ]); ids.push_back( aBRD.nodeIDs[ aPART.nodeLast ]); + if ( aPART.node1 == aPART.nodeLast ) + ids.push_back( aBRD.nodeIDs[ aPART.node2 ]); SMDS_Mesh* mesh = myPartActors[ partIndex ]->GetObject()->GetMesh(); coords.push_back( SMESH_TNodeXYZ( mesh->FindNode( aPART.node1+1 ))); coords.push_back( SMESH_TNodeXYZ( mesh->FindNode( aPART.nodeLast+1 ))); + if ( aPART.node1 == aPART.nodeLast ) + coords.push_back( SMESH_TNodeXYZ( mesh->FindNode( aPART.node2+1 ))); } void SMESHGUI_SewingDlg::BorderGroupDisplayer::Update()