From 111d1ee46e49cd0a84522f2564bd379a6de2a482 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 14 Dec 2012 13:49:42 +0000 Subject: [PATCH] 21948: EDF SMESH : Memory is not freed when deleting a mesh Show nb of nodes and elements in "Compute" dialog --- src/SMESHGUI/SMESHGUI_ComputeDlg.cxx | 37 ++++++++++++++++++++++------ src/SMESHGUI/SMESHGUI_ComputeDlg.h | 22 +++++++++-------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx index 9cc3ac5d5..5a36d0301 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx @@ -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(); } diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.h b/src/SMESHGUI/SMESHGUI_ComputeDlg.h index 49aa2477c..c01dad073 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.h +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.h @@ -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 -- 2.30.2