Fix for bug PAL9590 (SIGSEV when creating a SMESH group on Debian Sarge).

This commit is contained in:
mzn 2005-09-08 08:44:15 +00:00
parent 20b6a0b006
commit ed19b0c94f
2 changed files with 9 additions and 3 deletions

View File

@ -420,7 +420,8 @@ QString SMESHGUI_FilterTable::Table::text( int row, int col ) const
//======================================================================= //=======================================================================
SMESHGUI_FilterTable::SMESHGUI_FilterTable( QWidget* parent, SMESHGUI_FilterTable::SMESHGUI_FilterTable( QWidget* parent,
const int type ) const int type )
: QFrame( parent ) : QFrame( parent ),
myIsLocked( false )
{ {
myEntityType = -1; myEntityType = -1;
Init( type ); Init( type );
@ -432,7 +433,8 @@ SMESHGUI_FilterTable::SMESHGUI_FilterTable( QWidget* parent,
//======================================================================= //=======================================================================
SMESHGUI_FilterTable::SMESHGUI_FilterTable( QWidget* parent, SMESHGUI_FilterTable::SMESHGUI_FilterTable( QWidget* parent,
const QValueList<int>& types ) const QValueList<int>& types )
: QFrame( parent ) : QFrame( parent ),
myIsLocked( false )
{ {
myEntityType = -1; myEntityType = -1;
Init( types ); Init( types );
@ -1029,6 +1031,7 @@ void SMESHGUI_FilterTable::onClearBtn()
//======================================================================= //=======================================================================
void SMESHGUI_FilterTable::onCurrentChanged( int theRow, int theCol ) void SMESHGUI_FilterTable::onCurrentChanged( int theRow, int theCol )
{ {
if( !myIsLocked )
updateAdditionalWidget(); updateAdditionalWidget();
emit CurrentChanged( theRow, theCol ); emit CurrentChanged( theRow, theCol );
} }
@ -1121,6 +1124,7 @@ void SMESHGUI_FilterTable::addRow( Table* theTable, const int theType, const boo
int aSelectedRow = getFirstSelectedRow(); int aSelectedRow = getFirstSelectedRow();
int aCurrCol = theTable->currentColumn(); int aCurrCol = theTable->currentColumn();
myIsLocked = true;
if ( toTheEnd || aSelectedRow == -1 ) if ( toTheEnd || aSelectedRow == -1 )
{ {
theTable->insertRows( theTable->numRows() ); theTable->insertRows( theTable->numRows() );
@ -1131,6 +1135,7 @@ void SMESHGUI_FilterTable::addRow( Table* theTable, const int theType, const boo
theTable->insertRows( aSelectedRow ); theTable->insertRows( aSelectedRow );
aCurrRow = aSelectedRow; aCurrRow = aSelectedRow;
} }
myIsLocked = false;
// Criteria // Criteria
theTable->setItem( aCurrRow, 0, getCriterionItem( theTable, theType ) ); theTable->setItem( aCurrRow, 0, getCriterionItem( theTable, theType ) );

View File

@ -186,6 +186,7 @@ private:
QButtonGroup* myEntityTypeGrp; QButtonGroup* myEntityTypeGrp;
int myEntityType; int myEntityType;
int myIsValid; int myIsValid;
bool myIsLocked;
SMESHGUI_FilterLibraryDlg* myLibDlg; SMESHGUI_FilterLibraryDlg* myLibDlg;