mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-04-12 15:57:27 +05:00
Fix PAL7951
This commit is contained in:
parent
2c23c066a7
commit
2177157cb7
@ -148,6 +148,7 @@ QFrame* SMESHGUI_MultiEditDlg::createMainFrame( QWidget* theParent, const bool t
|
|||||||
myListBox->setSelectionMode( QListBox::Extended );
|
myListBox->setSelectionMode( QListBox::Extended );
|
||||||
myListBox->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
|
myListBox->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
|
||||||
// myListBox->setColumnMode( QListBox::FitToHeight );
|
// myListBox->setColumnMode( QListBox::FitToHeight );
|
||||||
|
myListBox->installEventFilter( this );
|
||||||
|
|
||||||
myFilterBtn = new QPushButton( tr( "FILTER" ) , aFrame );
|
myFilterBtn = new QPushButton( tr( "FILTER" ) , aFrame );
|
||||||
myAddBtn = new QPushButton( tr( "ADD" ) , aFrame );
|
myAddBtn = new QPushButton( tr( "ADD" ) , aFrame );
|
||||||
@ -213,10 +214,11 @@ QFrame* SMESHGUI_MultiEditDlg::createButtonFrame( QWidget* theParent )
|
|||||||
// name : SMESHGUI_MultiEditDlg::isValid
|
// name : SMESHGUI_MultiEditDlg::isValid
|
||||||
// Purpose : Verify validity of input data
|
// Purpose : Verify validity of input data
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
bool SMESHGUI_MultiEditDlg::isValid( const bool /*theMess*/ ) const
|
bool SMESHGUI_MultiEditDlg::isValid( const bool /*theMess*/ )
|
||||||
{
|
{
|
||||||
|
SMESH::long_array_var anIds = getIds();
|
||||||
return (!myMesh->_is_nil() &&
|
return (!myMesh->_is_nil() &&
|
||||||
(myListBox->count() > 0 || (myToAllChk->isChecked() && myActor)));
|
(myListBox->count() > 0 || (myToAllChk->isChecked() && myActor)) && anIds->length() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -232,6 +234,20 @@ SMESHGUI_MultiEditDlg::~SMESHGUI_MultiEditDlg()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// 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
|
// name : SMESHGUI_MultiEditDlg::Init
|
||||||
// Purpose : Init dialog fields, connect signals and slots, show dialog
|
// Purpose : Init dialog fields, connect signals and slots, show dialog
|
||||||
@ -272,10 +288,16 @@ void SMESHGUI_MultiEditDlg::Init( SALOME_Selection* theSelection )
|
|||||||
|
|
||||||
connect( myListBox, SIGNAL( selectionChanged() ), SLOT( onListSelectionChanged() ) );
|
connect( myListBox, SIGNAL( selectionChanged() ), SLOT( onListSelectionChanged() ) );
|
||||||
|
|
||||||
onSelectionDone();
|
int nbSel = mySelection->IObjectCount();
|
||||||
|
if ( nbSel == 1 )
|
||||||
|
myIO = mySelection->firstIObject();
|
||||||
|
|
||||||
// set selection mode
|
// set selection mode
|
||||||
setSelectionMode();
|
setSelectionMode();
|
||||||
|
|
||||||
|
// process selection
|
||||||
|
//onSelectionDone();
|
||||||
|
|
||||||
updateButtons();
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -431,13 +453,19 @@ void SMESHGUI_MultiEditDlg::onSelectionDone()
|
|||||||
|
|
||||||
if ( nbSel == 1 ) {
|
if ( nbSel == 1 ) {
|
||||||
myActor = SMESH::FindActorByEntry(mySelection->firstIObject()->getEntry());
|
myActor = SMESH::FindActorByEntry(mySelection->firstIObject()->getEntry());
|
||||||
if ( !myActor && !myMesh->_is_nil() )
|
//if ( !myActor && !myMesh->_is_nil() )
|
||||||
myActor = SMESH::FindActorByObject( myMesh );
|
// myActor = SMESH::FindActorByObject( myMesh );
|
||||||
VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
|
VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
|
||||||
Handle(VTKViewer_Filter) aFilter = aStyle->GetFilter( myFilterType );
|
Handle(VTKViewer_Filter) aFilter = aStyle->GetFilter( myFilterType );
|
||||||
if ( !aFilter.IsNull() && myActor ) {
|
if ( myActor ) {
|
||||||
aFilter->SetActor( myActor );
|
if ( !aFilter.IsNull() ) {
|
||||||
//SMESH::SetPickable( myActor );
|
aFilter->SetActor( myActor );
|
||||||
|
//SMESH::SetPickable( myActor );
|
||||||
|
myIO = myActor->getIO();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
myIO.Nullify();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
myBusy = false;
|
myBusy = false;
|
||||||
@ -817,11 +845,11 @@ void SMESHGUI_MultiEditDlg::onToAllChk()
|
|||||||
|
|
||||||
emit ListContensChanged();
|
emit ListContensChanged();
|
||||||
|
|
||||||
updateButtons();
|
|
||||||
setSelectionMode();
|
setSelectionMode();
|
||||||
|
|
||||||
if ( myActor )
|
//if ( !myIO.IsNull() )
|
||||||
mySelection->AddIObject( myActor->getIO(), true );
|
//mySelection->AddIObject( myIO, true );
|
||||||
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -864,6 +892,8 @@ void SMESHGUI_MultiEditDlg::setSelectionMode()
|
|||||||
else
|
else
|
||||||
SMESH::SetFilter( new SMESHGUI_FacesFilter() );
|
SMESH::SetFilter( new SMESHGUI_FacesFilter() );
|
||||||
}
|
}
|
||||||
|
if ( !myIO.IsNull() )
|
||||||
|
mySelection->AddIObject( myIO, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -920,15 +950,15 @@ void SMESHGUI_MultiEditDlg::on3d2dChanged(int type)
|
|||||||
|
|
||||||
emit ListContensChanged();
|
emit ListContensChanged();
|
||||||
|
|
||||||
updateButtons();
|
|
||||||
|
|
||||||
if ( type )
|
if ( type )
|
||||||
myFilterType = SMESHGUI_VolumeFilter;
|
myFilterType = SMESHGUI_VolumeFilter;
|
||||||
else
|
else
|
||||||
myFilterType = SMESHGUI_FaceFilter;
|
myFilterType = SMESHGUI_FaceFilter;
|
||||||
setSelectionMode();
|
setSelectionMode();
|
||||||
|
|
||||||
myActor = 0;
|
updateButtons();
|
||||||
|
|
||||||
|
//myActor = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
#include <SALOMEconfig.h>
|
#include <SALOMEconfig.h>
|
||||||
#include CORBA_SERVER_HEADER(SMESH_Mesh)
|
#include CORBA_SERVER_HEADER(SMESH_Mesh)
|
||||||
|
|
||||||
class QCloseEvent;
|
|
||||||
class SMESHGUI_FilterDlg;
|
class SMESHGUI_FilterDlg;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
@ -47,6 +46,7 @@ class SALOME_Selection;
|
|||||||
class SMESH_Actor;
|
class SMESH_Actor;
|
||||||
class SALOME_Actor;
|
class SALOME_Actor;
|
||||||
class QButtonGroup;
|
class QButtonGroup;
|
||||||
|
class QObject;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Class : SMESHGUI_MultiEditDlg
|
Class : SMESHGUI_MultiEditDlg
|
||||||
@ -68,6 +68,8 @@ public:
|
|||||||
|
|
||||||
void Init( SALOME_Selection* ) ;
|
void Init( SALOME_Selection* ) ;
|
||||||
|
|
||||||
|
bool eventFilter( QObject* object, QEvent* event );
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void ListContensChanged();
|
void ListContensChanged();
|
||||||
|
|
||||||
@ -98,7 +100,7 @@ protected:
|
|||||||
void hideEvent ( QHideEvent * ); /* ESC key */
|
void hideEvent ( QHideEvent * ); /* ESC key */
|
||||||
QFrame* createButtonFrame( QWidget* );
|
QFrame* createButtonFrame( QWidget* );
|
||||||
QFrame* createMainFrame ( QWidget*, const bool );
|
QFrame* createMainFrame ( QWidget*, const bool );
|
||||||
bool isValid( const bool ) const;
|
bool isValid( const bool );
|
||||||
SMESH::long_array_var getIds();
|
SMESH::long_array_var getIds();
|
||||||
void updateButtons();
|
void updateButtons();
|
||||||
void setSelectionMode();
|
void setSelectionMode();
|
||||||
@ -141,6 +143,7 @@ protected:
|
|||||||
Handle(SMESH_TypeFilter) myGroupFilter;
|
Handle(SMESH_TypeFilter) myGroupFilter;
|
||||||
bool myBusy;
|
bool myBusy;
|
||||||
int myEntityType;
|
int myEntityType;
|
||||||
|
Handle(SALOME_InteractiveObject) myIO;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user