21948: EDF SMESH : Memory is not freed when deleting a mesh

Show nb of nodes and elements in "Compute" dialog
This commit is contained in:
eap 2012-12-14 13:49:42 +00:00
parent cad015ecdc
commit 111d1ee46e
2 changed files with 41 additions and 18 deletions

View File

@ -721,24 +721,43 @@ void SMESHGUI_ComputeDlg_QThread::cancel()
//================================================================================
//================================================================================
SMESHGUI_ComputeDlg_QThreadQDialog::SMESHGUI_ComputeDlg_QThreadQDialog(QWidget *parent,
SMESH::SMESH_Gen_var gen,
SMESHGUI_ComputeDlg_QThreadQDialog::SMESHGUI_ComputeDlg_QThreadQDialog(QWidget * parent,
SMESH::SMESH_Gen_var gen,
SMESH::SMESH_Mesh_var mesh,
GEOM::GEOM_Object_var mainShape)
: QDialog(parent),
: QDialog(parent,
Qt::WindowSystemMenuHint |
Qt::WindowCloseButtonHint |
Qt::Dialog |
Qt::WindowMaximizeButtonHint),
qthread(gen, mesh, mainShape)
{
// --
setWindowTitle(tr("Compute"));
setMinimumWidth( 200 );
cancelButton = new QPushButton(tr("Cancel"));
cancelButton->setDefault(true);
QLabel * nbNodesName = new QLabel(tr("SMESH_MESHINFO_NODES"), this );
QLabel * nbElemsName = new QLabel(tr("SMESH_MESHINFO_ELEMENTS"), this );
nbNodesLabel = new QLabel(" 0", this );
nbElemsLabel = new QLabel(" 0", this );
QGridLayout* layout = new QGridLayout(this);
layout->setMargin( MARGIN );
layout->setSpacing( SPACING );
layout->addWidget(nbNodesName, 0, 0);
layout->addWidget(nbNodesLabel, 0, 1);
layout->addWidget(nbElemsName, 1, 0);
layout->addWidget(nbElemsLabel, 1, 1);
layout->addWidget(cancelButton, 2, 0, 1, 2);
adjustSize();
update();
connect(cancelButton, SIGNAL(clicked()), this, SLOT(onCancel()));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(cancelButton);
setLayout(layout);
resize(200, 50);
// --
startTimer(30); // 30 millisecs
startTimer(300); // millisecs
qthread.start();
}
@ -758,6 +777,8 @@ void SMESHGUI_ComputeDlg_QThreadQDialog::timerEvent(QTimerEvent *event)
{
close();
}
nbNodesLabel->setText( QString("%1").arg( qthread.getMesh()->NbNodes() ));
nbElemsLabel->setText( QString("%1").arg( qthread.getMesh()->NbElements() ));
event->accept();
}

View File

@ -271,20 +271,21 @@ class SMESHGUI_EXPORT SMESHGUI_ComputeDlg_QThread : public QThread
Q_OBJECT
public:
SMESHGUI_ComputeDlg_QThread(SMESH::SMESH_Gen_var gen,
SMESHGUI_ComputeDlg_QThread(SMESH::SMESH_Gen_var gen,
SMESH::SMESH_Mesh_var mesh,
GEOM::GEOM_Object_var mainShape);
bool result();
void cancel();
bool result();
void cancel();
SMESH::SMESH_Mesh_var& getMesh() { return myMesh; }
protected:
void run();
private:
SMESH::SMESH_Gen_var myGen;
SMESH::SMESH_Gen_var myGen;
SMESH::SMESH_Mesh_var myMesh;
GEOM::GEOM_Object_var myMainShape;
bool myResult;
bool myResult;
};
/*!
@ -296,8 +297,8 @@ class SMESHGUI_EXPORT SMESHGUI_ComputeDlg_QThreadQDialog : public QDialog
Q_OBJECT
public:
SMESHGUI_ComputeDlg_QThreadQDialog(QWidget *parent,
SMESH::SMESH_Gen_var gen,
SMESHGUI_ComputeDlg_QThreadQDialog(QWidget * parent,
SMESH::SMESH_Gen_var gen,
SMESH::SMESH_Mesh_var mesh,
GEOM::GEOM_Object_var mainShape);
bool result();
@ -311,8 +312,9 @@ private slots:
private:
SMESHGUI_ComputeDlg_QThread qthread;
QPushButton *cancelButton;
QPushButton * cancelButton;
QLabel * nbNodesLabel;
QLabel * nbElemsLabel;
};
#endif // SMESHGUI_COMPUTEDLG_H