summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-bartender
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-bartender') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-bartender/bac.cpp33
-rw-r--r--noncore/apps/opie-bartender/bac.h4
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
@@ -27,41 +27,50 @@ BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl
Layout7 = new QVBoxLayout( this);
Layout7->setSpacing( 6 );
Layout7->setMargin( 0 );
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);
TextLabel3 = new QLabel( this, "TextLabel3" );
TextLabel3->setText( tr( "Period of Time (hours)" ) );
Layout3->addWidget( TextLabel3 );
Layout7->addLayout( Layout3 );
@@ -105,67 +114,71 @@ BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl
LCDNumber1->setMaximumHeight( 50);
LCDNumber1->setNumDigits(6);
LCDNumber1->setSmallDecimalPoint(TRUE);
LCDNumber1->setFrameStyle(QFrame::Box);
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()) {
case 0: { //beer
typeDrink = .045;
drinkOz = 12;
}
break;
case 1: {
typeDrink = .2;
drinkOz = 4;
}
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
@@ -33,26 +33,28 @@ public:
QSpinBox* NumberSpinBox;
QLabel* TextLabel1;
QSpinBox* WeightSpinBox;
QLabel* TextLabel2;
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