Show free RAM while computing the mesh

This commit is contained in:
eap 2013-06-20 14:29:16 +00:00
parent 5dcd4d5ae9
commit 9ad61d3503
3 changed files with 43 additions and 11 deletions

View File

@ -99,6 +99,10 @@
#include <vector> #include <vector>
#include <set> #include <set>
#ifndef WIN32
#include <sys/sysinfo.h>
#endif
#define SPACING 6 #define SPACING 6
#define MARGIN 11 #define MARGIN 11
@ -748,17 +752,24 @@ SMESHGUI_ComputeDlg_QThreadQDialog::SMESHGUI_ComputeDlg_QThreadQDialog(QWidget
QLabel * nbNodesName = new QLabel(tr("SMESH_MESHINFO_NODES"), this ); QLabel * nbNodesName = new QLabel(tr("SMESH_MESHINFO_NODES"), this );
QLabel * nbElemsName = new QLabel(tr("SMESH_MESHINFO_ELEMENTS"), this ); QLabel * nbElemsName = new QLabel(tr("SMESH_MESHINFO_ELEMENTS"), this );
QLabel * freeRAMName = new QLabel(tr("SMESH_FREERAM"), this );
nbNodesLabel = new QLabel("0", this ); nbNodesLabel = new QLabel("0", this );
nbElemsLabel = new QLabel("0", this ); nbElemsLabel = new QLabel("0", this );
freeRAMLabel = new QLabel("", this );
QGridLayout* layout = new QGridLayout(this); QGridLayout* layout = new QGridLayout(this);
layout->setMargin( MARGIN ); layout->setMargin( MARGIN );
layout->setSpacing( SPACING ); layout->setSpacing( SPACING );
layout->addWidget(nbNodesName, 0, 0); int row = 0;
layout->addWidget(nbNodesLabel, 0, 1); layout->addWidget(nbNodesName, row, 0);
layout->addWidget(nbElemsName, 1, 0); layout->addWidget(nbNodesLabel, row++, 1);
layout->addWidget(nbElemsLabel, 1, 1); layout->addWidget(nbElemsName, row, 0);
layout->addWidget(cancelButton, 2, 0, 1, 2); layout->addWidget(nbElemsLabel, row++, 1);
#ifndef WNT
layout->addWidget(freeRAMName, row, 0);
layout->addWidget(freeRAMLabel, row++, 1);
#endif
layout->addWidget(cancelButton, row, 0, 1, 2);
adjustSize(); adjustSize();
update(); update();
@ -784,8 +795,20 @@ void SMESHGUI_ComputeDlg_QThreadQDialog::timerEvent(QTimerEvent *event)
{ {
close(); close();
} }
else
{
nbNodesLabel->setText( QString("%1").arg( qthread.getMesh()->NbNodes() )); nbNodesLabel->setText( QString("%1").arg( qthread.getMesh()->NbNodes() ));
nbElemsLabel->setText( QString("%1").arg( qthread.getMesh()->NbElements() )); nbElemsLabel->setText( QString("%1").arg( qthread.getMesh()->NbElements() ));
#ifndef WNT
struct sysinfo si;
const int err = sysinfo( &si );
if ( err )
freeRAMLabel->setText("");
else
freeRAMLabel->setText( tr("SMESH_GIGABYTE").arg
( si.freeram * si.mem_unit /1024./1024./1024., 0, 'f', 2 ));
#endif
}
event->accept(); event->accept();
} }

View File

@ -317,6 +317,7 @@ private:
QPushButton * cancelButton; QPushButton * cancelButton;
QLabel * nbNodesLabel; QLabel * nbNodesLabel;
QLabel * nbElemsLabel; QLabel * nbElemsLabel;
QLabel * freeRAMLabel;
}; };
#endif // SMESHGUI_COMPUTEDLG_H #endif // SMESHGUI_COMPUTEDLG_H

View File

@ -4100,6 +4100,14 @@ Input value precision can be adjusted using
<translation>Selected object has been used to create another one. <translation>Selected object has been used to create another one.
It can&apos;t be deleted </translation> It can&apos;t be deleted </translation>
</message> </message>
<message>
<source>SMESH_FREERAM</source>
<translation>Free RAM</translation>
</message>
<message>
<source>SMESH_GIGABYTE</source>
<translation>%1 G</translation>
</message>
</context> </context>
<context> <context>
<name>SMESHGUI_Dialog</name> <name>SMESHGUI_Dialog</name>