SelectAllCheck = new QCheckBox(tr("SELECT_ALL"), GroupCoincident);
- aCoincidentLayout->addWidget(ListCoincident, 0, 0, 4, 2);
+ aCoincidentLayout->addWidget(ListCoincident, 0, 0, 5, 2);
aCoincidentLayout->addWidget(DetectButton, 1, 2);
aCoincidentLayout->addWidget(RemoveGroupButton, 3, 2);
- aCoincidentLayout->addWidget(SelectAllCheck, 4, 0);
+ aCoincidentLayout->addWidget(SelectAllCheck, 5, 0);
aCoincidentLayout->setRowMinimumHeight(1, 10);
- aCoincidentLayout->setRowStretch (1, 5);
-
- GroupCoincidentLayout->addWidget( GroupCoincident );
+ aCoincidentLayout->setRowStretch (4, 5);
+ aCoincidentLayout->setRowStretch (5, 0);
/*****************************************/
// Controls for editing the selected group
GroupEditLayout->addWidget(SwapBut, 1, 7);
GroupEditLayout->addWidget(StepLabel, 1, 8);
GroupEditLayout->addWidget(StepSpin, 1, 9);
+ GroupEditLayout->setRowStretch( 0, 1 );
+ GroupCoincidentLayout->addWidget( GroupCoincident );
GroupCoincidentLayout->addWidget( GroupEdit );
+ GroupCoincidentLayout->setRowStretch( 0, 10 );
+ GroupCoincidentLayout->setRowStretch( 1, 1 );
+
aSewFreeBordersLayout->addWidget( GroupCoincidentWidget );
// layout
{
ModeGroup->hide();
SewFreeBordersWidget->hide();
+ restoreDisplayMode();
}
bool isNodeSelection = true;
LineEdit4->setValidator(new SMESHGUI_IdValidator(this, 1));
}
- if ( isNodeSelection )
- {
- SMESH::SetPointRepresentation(true);
- if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
- aViewWindow->SetSelectionMode(NodeSelection);
- }
+ if ( myActor )
+ myActor->SetPointRepresentation( isNodeSelection );
+
+ if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+ aViewWindow->SetSelectionMode( isNodeSelection ? NodeSelection : ActorSelection );
UpdateButtons();
{
myStoredEntityMode = 0;
myStoredRepresentation = -1;
- if ( myActor )
+
+ if ( myActor && AutoSewCheck->isVisible() && !AutoSewCheck->isChecked() )
{
myStoredEntityMode = myActor->GetEntityMode();
myStoredRepresentation = myActor->GetRepresentation();
myStoredEntityMode = 0;
myStoredRepresentation = -1;
}
+ for ( size_t i = 0; i < myBorderDisplayers.size(); ++i )
+ if ( myBorderDisplayers[ i ])
+ myBorderDisplayers[ i ]->Hide();
}
//=======================================================================
if ( !SewFreeBordersWidget->isVisible() )
SewFreeBordersWidget->show();
}
+ if ( myActor )
+ myActor->SetPointRepresentation( mode == MODE_MANUAL );
+
+ if ( SVTK_ViewWindow* aViewWindow = SMESH::GetCurrentVtkView() )
+ aViewWindow->SetSelectionMode( mode == MODE_MANUAL ? NodeSelection : ActorSelection );
+
onAutoSew( AutoSewCheck->isChecked() );
QApplication::instance()->processEvents();
if ( ModeButGrp->checkedId() == MODE_AUTO )
SewFreeBordersWidget->show();
+ if ( isAuto )
+ restoreDisplayMode();
+ else
+ setDisplayMode();
+ SMESH::RepaintCurrentView();
+
UpdateButtons();
updateGeometry();
void SMESHGUI_SewingDlg::onDetectClicked()
{
+ myBusy = true;
ListCoincident->clear();
if ( myMesh->_is_nil() )
item->setData( GROUP_COLOR, groupColor );
item->setData( GROUP_INDEX, i );
}
+ myBusy = false;
onSelectGroup();
void SMESHGUI_SewingDlg::onRemoveGroupClicked()
{
+ myBusy = true;
QList<QListWidgetItem*> selItems = ListCoincident->selectedItems();
for ( int i = 0; i < selItems.count(); ++i )
{
item->setSelected( false );
int groupIndex = item->data( GROUP_INDEX ).toInt();
delete item;
- myBorderDisplayers[ groupIndex ]->Hide();
+ if ( myBorderDisplayers[ groupIndex ])
+ myBorderDisplayers[ groupIndex ]->Hide();
SMESH::FreeBordersGroup& aGRP = myBorders->coincidentGroups[ myCurGroupIndex ];
aGRP.length( 0 );
}
+ myBusy = false;
+
+ onSelectGroup();
UpdateButtons();
}
{
if ( !item ||
item->listWidget() != ListCoincident ||
- !haveBorders() )
+ !haveBorders())
return;
int groupIndex = item->data( GROUP_INDEX ).toInt();
if ( groupIndex >= 0 &&
groupIndex < myBorders->coincidentGroups.length() )
{
- if ( !myBorderDisplayers[ groupIndex ])
+ if ( !myBorderDisplayers[ groupIndex ] && SMESH::GetCurrentVtkView())
myBorderDisplayers[ groupIndex ] = new BorderGroupDisplayer( myBorders, groupIndex, groupColor, myMesh );
bool wholeBorders = setCurrentGroup();
- myBorderDisplayers[ groupIndex ]->ShowGroup( wholeBorders );
+ if ( myBorderDisplayers[ groupIndex ])
+ myBorderDisplayers[ groupIndex ]->ShowGroup( wholeBorders );
}
}
for ( int i = 0; i < ListEdit->count(); ++i )
ListEdit->item( i )->setText( getPartText( aGRP[ i ]));
- myBorderDisplayers[ myCurGroupIndex ]->Update();
+ if ( myBorderDisplayers[ myCurGroupIndex ])
+ myBorderDisplayers[ myCurGroupIndex ]->Update();
if ( partChange )
onSelectBorderPartFromGroup();
{
DeactivateActiveDialog();
mySelector = 0;
+ myActor = 0;
for ( size_t i = 0; i < myBorderDisplayers.size(); ++i )
{
myPartActors[ i ] = SMESH_Actor::New( obj, "", "", 1 );
myPartActors[ i ]->SetEdgeColor( myColor.redF(), myColor.greenF(), myColor.blueF() );
myPartActors[ i ]->SetLineWidth( 3 * SMESH::GetFloat("SMESH:element_width",1));
- myPartActors[ i ]->SetPickable( false );
myPartActors[ i ]->SetNodeColor( myColor.redF(), myColor.greenF(), myColor.blueF() );
myPartActors[ i ]->SetMarkerStd( VTK::MT_POINT, 13 );
+ myPartActors[ i ]->SetPickable ( false );
myViewWindow->AddActor( myPartActors[ i ]);
- myViewWindow->Repaint();
+ //myViewWindow->Repaint();
}
}
}