diff options
Diffstat (limited to 'src/dialogs/createingredientweightdialog.cpp')
-rw-r--r-- | src/dialogs/createingredientweightdialog.cpp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/src/dialogs/createingredientweightdialog.cpp b/src/dialogs/createingredientweightdialog.cpp new file mode 100644 index 0000000..45bf158 --- /dev/null +++ b/src/dialogs/createingredientweightdialog.cpp @@ -0,0 +1,124 @@ +/*************************************************************************** +* Copyright (C) 2006 by * +* Jason Kivlighn ([email protected]) * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +***************************************************************************/ + +#include "createingredientweightdialog.h" + +#include <tqgroupbox.h> +#include <tqlabel.h> +#include <tqpushbutton.h> +#include <tqlayout.h> +#include <tqtooltip.h> +#include <tqwhatsthis.h> +#include <tqvbox.h> + +#include <tdemessagebox.h> +#include <tdelocale.h> + +#include "widgets/unitcombobox.h" +#include "widgets/prepmethodcombobox.h" +#include "widgets/fractioninput.h" +#include "datablocks/weight.h" +#include "backends/recipedb.h" + +CreateIngredientWeightDialog::CreateIngredientWeightDialog( TQWidget* parent, RecipeDB *db ) + : KDialogBase( parent, "createIngWeightDialog", true, TQString::null, + KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok ) +{ + TQVBox *page = makeVBoxMainWidget(); + + groupBox1 = new TQGroupBox( page ); + groupBox1->setColumnLayout(0, TQt::Vertical ); + groupBox1->layout()->setSpacing( 6 ); + groupBox1->layout()->setMargin( 11 ); + groupBox1Layout = new TQGridLayout( groupBox1->layout() ); + groupBox1Layout->setAlignment( TQt::AlignTop ); + + perAmountEdit = new FractionInput( groupBox1 ); + + groupBox1Layout->addWidget( perAmountEdit, 1, 1 ); + + weightEdit = new FractionInput( groupBox1 ); + + groupBox1Layout->addWidget( weightEdit, 0, 1 ); + + weightUnitBox = new UnitComboBox( groupBox1, db, Unit::Mass ); + weightUnitBox->reload(); + + groupBox1Layout->addMultiCellWidget( weightUnitBox, 0, 0, 2, 3 ); + + perAmountLabel = new TQLabel( groupBox1, "perAmountLabel" ); + + groupBox1Layout->addWidget( perAmountLabel, 1, 0 ); + + weightLabel = new TQLabel( groupBox1, "weightLabel" ); + + groupBox1Layout->addWidget( weightLabel, 0, 0 ); + + perAmountUnitBox = new UnitComboBox( groupBox1, db ); + perAmountUnitBox->reload(); + + groupBox1Layout->addWidget( perAmountUnitBox, 1, 2 ); + + prepMethodBox = new PrepMethodComboBox( false, groupBox1, db, i18n("-No Preparation-") ); + prepMethodBox->reload(); + groupBox1Layout->addWidget( prepMethodBox, 1, 3 ); + + languageChange(); + clearWState( WState_Polished ); + + weightEdit->setFocus(); +} + +CreateIngredientWeightDialog::~CreateIngredientWeightDialog() +{ + // no need to delete child widgets, TQt does it all for us +} + +void CreateIngredientWeightDialog::languageChange() +{ + groupBox1->setTitle( i18n( "New Ingredient Weight" ) ); + perAmountLabel->setText( i18n( "Per Amount:" ) ); + weightLabel->setText( i18n( "Weight:" ) ); +} + +void CreateIngredientWeightDialog::slotOk() +{ + if ( !perAmountEdit->isInputValid() ) { + KMessageBox::error( this, i18n( "Amount field contains invalid input." ), + i18n( "Invalid input" ) ); + perAmountEdit->setFocus(); + perAmountEdit->selectAll(); + return; + } + else if ( !weightEdit->isInputValid() ) { + KMessageBox::error( this, i18n( "Amount field contains invalid input." ), + i18n( "Invalid input" ) ); + weightEdit->setFocus(); + weightEdit->selectAll(); + return; + } + + accept(); +} + +Weight CreateIngredientWeightDialog::weight() const +{ + Weight w; + w.perAmount = perAmountEdit->value().toDouble(); + w.perAmountUnitID = perAmountUnitBox->id( perAmountUnitBox->currentItem() ); + w.weight = weightEdit->value().toDouble(); + w.weightUnitID = weightUnitBox->id( weightUnitBox->currentItem() ); + w.prepMethodID = prepMethodBox->id( prepMethodBox->currentItem() ); + w.prepMethod = prepMethodBox->currentText(); + + return w; +} + +#include "createingredientweightdialog.moc" |