const bool the3d2d,
const char* theName )
: QDialog( theParent, theName, false,
- WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
{
myFilterDlg = 0;
mySubmeshFilter = new SMESH_TypeFilter( SUBMESH );
myListBox->setSelectionMode( QListBox::Extended );
myListBox->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
// myListBox->setColumnMode( QListBox::FitToHeight );
+ myListBox->installEventFilter( this );
myFilterBtn = new QPushButton( tr( "FILTER" ) , aFrame );
myAddBtn = new QPushButton( tr( "ADD" ) , aFrame );
}
}
+//=======================================================================
+// name : SMESHGUI_MultiEditDlg::eventFilter
+// Purpose : event filter
+//=======================================================================
+bool SMESHGUI_MultiEditDlg::eventFilter( QObject* object, QEvent* event )
+{
+ if ( object == myListBox && event->type() == QEvent::KeyPress ) {
+ QKeyEvent* ke = (QKeyEvent*)event;
+ if ( ke->key() == Key_Delete )
+ onRemoveBtn();
+ }
+ return QDialog::eventFilter( object, event );
+}
+
//=======================================================================
// name : SMESHGUI_MultiEditDlg::Init
// Purpose : Init dialog fields, connect signals and slots, show dialog
if ( myToAllChk->isChecked() )
{
myIds.Clear();
- if ( myActor != 0 )
+ SMESH_Actor * anActor = SMESH::FindActorByObject( myMesh );
+ if ( !anActor )
+ anActor = myActor;
+ if ( anActor != 0 )
{
- TVisualObjPtr aVisualObj = myActor->GetObject();
+ TVisualObjPtr aVisualObj = anActor->GetObject();
vtkUnstructuredGrid* aGrid = aVisualObj->GetUnstructuredGrid();
if ( aGrid != 0 )
{
disconnect( SMESHGUI::GetSMESHGUI(), 0, this, 0 );
SMESHGUI::GetSMESHGUI()->ResetState();
- SMESH::RemoveFilter(SMESHGUI_EdgeFilter);
- SMESH::RemoveFilter(SMESHGUI_FaceFilter);
- SMESH::RemoveFilter(SMESHGUI_VolumeFilter);
- SMESH::RemoveFilter(SMESHGUI_QuadFilter);
- SMESH::RemoveFilter(SMESHGUI_TriaFilter);
+ SMESH::RemoveFilters();
SMESH::SetPickable();
mySelection->ClearIObjects();
if (!myActor)
myActor = SMESH::FindActorByObject( myMesh );
VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
- Handle(VTKViewer_Filter) aFilter1 = aStyle->GetFilter( myFilterType );
- Handle(VTKViewer_Filter) aFilter2 = aStyle->GetFilter( SMESHGUI_FaceFilter );
- if ( !aFilter1.IsNull() )
- aFilter1->SetActor( myActor );
- if ( !aFilter2.IsNull() )
- aFilter2->SetActor( myActor );
- if ( myActor )
- SMESH::SetPickable(myActor);
+ Handle(VTKViewer_Filter) aFilter = aStyle->GetFilter( myFilterType );
+ if ( !aFilter.IsNull() )
+ aFilter->SetActor( myActor );
+//if ( myActor )
+// SMESH::SetPickable(myActor);
}
myBusy = false;
}
//=======================================================================
-// name : SMESHGUI_MultiEditDlg::onAddBtn
+// name : SMESHGUI_MultiEditDlg::isIdValid
// Purpose : Verify whether Id of element satisfies to filters from viewer
//=======================================================================
bool SMESHGUI_MultiEditDlg::isIdValid( const int theId ) const
{
VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
- Handle(SMESHGUI_Filter) aFilter1 =
+ Handle(SMESHGUI_Filter) aFilter =
Handle(SMESHGUI_Filter)::DownCast( aStyle->GetFilter( myFilterType ) );
- Handle(SMESHGUI_Filter) aFilter2 =
- Handle(SMESHGUI_Filter)::DownCast( aStyle->GetFilter( SMESHGUI_FaceFilter ) );
- return ( aFilter1.IsNull() || aFilter1->IsObjValid( theId ) ) &&
- ( aFilter2.IsNull() || aFilter2->IsObjValid( theId ) );
+
+ return ( !aFilter.IsNull() && aFilter->IsObjValid( theId ) );
}
//=======================================================================
{
SMESH::SMESH_GroupBase_var aGroup =
SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Value() );
- if ( !aGroup->_is_nil() && aGroup->GetType() == SMESH::FACE )
+ if ( !aGroup->_is_nil() && ( aGroup->GetType() == SMESH::FACE && entityType() == 0 || aGroup->GetType() == SMESH::VOLUME && entityType() == 1 ) )
{
if ( aGroup->GetMesh()->GetId() == myMesh->GetId() )
{
//=======================================================================
void SMESHGUI_MultiEditDlg::setSelectionMode()
{
- SMESH::RemoveFilter(SMESHGUI_EdgeFilter);
- SMESH::RemoveFilter(SMESHGUI_FaceFilter);
- SMESH::RemoveFilter(SMESHGUI_VolumeFilter);
- SMESH::RemoveFilter(SMESHGUI_QuadFilter);
- SMESH::RemoveFilter(SMESHGUI_TriaFilter);
- SMESH::SetPickable();
-
+ SMESH::RemoveFilters();
+
mySelection->ClearIObjects();
mySelection->ClearFilters();
- if ( mySubmeshChk->isChecked() )
- {
+ if ( mySubmeshChk->isChecked() ) {
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection, true );
mySelection->AddFilter( mySubmeshFilter );
}
- else if ( myGroupChk->isChecked() )
- {
+ else if ( myGroupChk->isChecked() ) {
QAD_Application::getDesktop()->SetSelectionMode( ActorSelection, true );
mySelection->AddFilter( myGroupFilter );
}
- else
- {
- if ( myFilterType == SMESHGUI_VolumeFilter ) {
- QAD_Application::getDesktop()->SetSelectionMode( VolumeSelection, true );
- }
- else {
- QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
- if ( myFilterType == SMESHGUI_TriaFilter )
- SMESH::SetFilter( new SMESHGUI_TriangleFilter() );
- else if ( myFilterType == SMESHGUI_QuadFilter )
- SMESH::SetFilter( new SMESHGUI_QuadrangleFilter() );
- }
+ if ( entityType() ) {
+ QAD_Application::getDesktop()->SetSelectionMode( VolumeSelection, true );
+ SMESH::SetFilter( new SMESHGUI_VolumesFilter() );
+ }
+ else {
+ QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+ if ( myFilterType == SMESHGUI_TriaFilter )
+ SMESH::SetFilter( new SMESHGUI_TriangleFilter() );
+ else if ( myFilterType == SMESHGUI_QuadFilter )
+ SMESH::SetFilter( new SMESHGUI_QuadrangleFilter() );
+ else
+ SMESH::SetFilter( new SMESHGUI_FacesFilter() );
}
}
if ( aMeshEditor->_is_nil() )
return false;
+ myBusy = true;
+
SMESH::long_array_var anIds = getIds();
bool aResult = process( aMeshEditor, anIds.inout() );
updateButtons();
}
+ myBusy = false;
return aResult;
}
emit ListContensChanged();
- updateButtons();
-
if ( type )
myFilterType = SMESHGUI_VolumeFilter;
else
myFilterType = SMESHGUI_FaceFilter;
- setSelectionMode();
- if ( myActor )
- mySelection->AddIObject( myActor->getIO(), true );
+ updateButtons();
+ setSelectionMode();
}
}