-rw-r--r-- | noncore/apps/opie-bartender/bac.cpp | 33 | ||||
-rw-r--r-- | noncore/apps/opie-bartender/bac.h | 4 |
2 files changed, 26 insertions, 11 deletions
diff --git a/noncore/apps/opie-bartender/bac.cpp b/noncore/apps/opie-bartender/bac.cpp index c97a253..2e74029 100644 --- a/noncore/apps/opie-bartender/bac.cpp +++ b/noncore/apps/opie-bartender/bac.cpp @@ -31,33 +31,42 @@ BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl Layout1 = new QHBoxLayout; Layout1->setSpacing( 6 ); Layout1->setMargin( 0 ); NumberSpinBox = new QSpinBox( this, "NumberSpinBox" ); Layout1->addWidget( NumberSpinBox ); TextLabel1 = new QLabel(this, "TextLabel1" ); - TextLabel1->setText( tr( "Number of Drinks Consumed" ) ); + TextLabel1->setText( tr( "# Drinks Consumed" ) ); Layout1->addWidget( TextLabel1 ); Layout7->addLayout( Layout1 ); Layout2 = new QHBoxLayout; Layout2->setSpacing( 6 ); Layout2->setMargin( 0 ); WeightSpinBox = new QSpinBox( this, "WeightSpinBox" ); Layout2->addWidget( WeightSpinBox ); WeightSpinBox->setMaxValue(500); TextLabel2 = new QLabel( this, "TextLabel2" ); TextLabel2->setText( tr( "Weight" ) ); Layout2->addWidget( TextLabel2 ); Layout7->addLayout( Layout2 ); + weightUnitsCombo =new QComboBox( FALSE, this, "unitComboBox" ); + weightUnitsCombo->insertItem( tr( "Kilos" ) ); + weightUnitsCombo->insertItem( tr( "Pounds" ) ); + Layout2->addWidget( weightUnitsCombo ); + + weightUnitsLabel = new QLabel(this, "unitsTextLabel" ); + weightUnitsLabel->setText( tr( "Units" ) ); + Layout2->addWidget( weightUnitsLabel ); + Layout3 = new QHBoxLayout; Layout3->setSpacing( 6 ); Layout3->setMargin( 0 ); TimeSpinBox = new QSpinBox( this, "TimeSpinBox" ); Layout3->addWidget( TimeSpinBox ); TimeSpinBox->setMaxValue(24); @@ -109,27 +118,28 @@ BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl LCDNumber1->setLineWidth(2); LCDNumber1->setSegmentStyle( QLCDNumber::Filled); QPalette palette = LCDNumber1->palette(); palette.setColor(QPalette::Normal, QColorGroup::Foreground, Qt::red); palette.setColor(QPalette::Normal, QColorGroup::Light, Qt::black); palette.setColor(QPalette::Normal, QColorGroup::Dark, Qt::darkGreen); LCDNumber1->setPalette(palette); - Layout7->addWidget( LCDNumber1 ); - - + NumberSpinBox->setFocus(); } -BacDialog::~BacDialog() { -} +BacDialog::~BacDialog() +{} + +void BacDialog::calculate() +{ -void BacDialog::calculate() { float weight,genderDiff, bac, typeDrink=0, drinkOz=0, bodyWater, milliliters, oz, gram, gramsMil, alc, metab, bac1; + float weightunitDifference, massunitdiff; QString estBac; if( GenderComboBox->currentItem()==0) genderDiff = .58; else genderDiff = .49; switch(TypeDrinkComboBox->currentItem()) { @@ -144,28 +154,31 @@ void BacDialog::calculate() { } break; case 2: { typeDrink = .5; drinkOz = 1.5; } break; }; - weight = WeightSpinBox->value() / 2.2046; // in kilograms + + if( weightUnitsCombo->currentItem() == 0 ) { + weight = WeightSpinBox->value(); // kilos + } else { + weight = WeightSpinBox->value() / 2.2046; // convert to kilograms + } bodyWater = weight * genderDiff; milliliters = bodyWater * 1000; oz = 23.36/milliliters; gram = oz * .806; gramsMil = gram * 100; alc = drinkOz*NumberSpinBox->value() * typeDrink; metab = TimeSpinBox->value() * .012; bac1 = gramsMil * alc; bac = bac1 - metab; - - // weightDrink= (nDrinks * .79) / (weight * genderDiff*1000); // (ounces * percent * 0.075 / weight) - (hours * 0.015); // bac = (((weightDrink * .806) * 100) * .54);// - (time * .012); // assuming beer of 4.5% estBac.sprintf("%f",bac); LCDNumber1->display(bac); // BACTextLabel->setText(estBac ); } diff --git a/noncore/apps/opie-bartender/bac.h b/noncore/apps/opie-bartender/bac.h index 9245c96..43c7035 100644 --- a/noncore/apps/opie-bartender/bac.h +++ b/noncore/apps/opie-bartender/bac.h @@ -37,22 +37,24 @@ public: QSpinBox* TimeSpinBox; QLabel* TextLabel3; QComboBox* GenderComboBox; QLabel* TextLabel4; QComboBox* TypeDrinkComboBox; QLabel* TextLabel1_2; QPushButton* PushButton1; QLCDNumber* LCDNumber1; - + QComboBox *weightUnitsCombo; + QLabel *weightUnitsLabel; protected: QVBoxLayout* Layout7; QHBoxLayout* Layout1; QHBoxLayout* Layout2; QHBoxLayout* Layout3; QHBoxLayout* Layout4; QHBoxLayout* Layout6; + protected slots: void calculate(); }; #endif // BACDIALOG_H |