00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "calcdlgui.h"
00019 #include "kmolcalc.h"
00020 #include <qlineedit.h>
00021 #include <qmultilineedit.h>
00022 #include <qpushbutton.h>
00023
00024 calcDlgUI::calcDlgUI() : CalcDlg()
00025 {
00026 kmolcalc = new KMolCalc;
00027 connect( calculate, SIGNAL( clicked() ), this, SLOT( calc() ) );
00028 connect( clear_fields, SIGNAL( clicked() ), this, SLOT( clear() ) );
00029 result->setReadOnly( true );
00030 }
00031
00032 void calcDlgUI::calc()
00033 {
00034 QString compound( formula->text() );
00035 if ( compound.isEmpty() ) {
00036 clear();
00037 return;
00038 }
00039 QString errors( kmolcalc->readFormula( compound ) );
00040 QString mw, ea;
00041 double weight = kmolcalc->getWeight();
00042 if ( errors == "OK" ) {
00043 mw.setNum( weight );
00044 ea = kmolcalc->getEmpFormula() + " :\n" + kmolcalc->getEA();
00045 } else {
00046 mw = "???";
00047 ea = tr( "ERROR: \n" ).arg( errors )+ "\n";
00048 }
00049 result->setText( mw );
00050 anal_display->setText( ea );
00051 }
00052
00056 void calcDlgUI::clear()
00057 {
00058 formula->clear();
00059 result->clear();
00060 anal_display->clear();
00061 }
00062
00063