diff options
| author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-13 11:56:14 +0900 |
|---|---|---|
| committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-21 09:29:11 +0900 |
| commit | 0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502 (patch) | |
| tree | 10f9d3223f0a0904a0748a28ca44da52ee1092b7 /src/widgets/amountunitinput.cpp | |
| parent | 7d5ba3180a82a0827c1fbd6dc93a2abf4f882c37 (diff) | |
| download | krecipes-0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502.tar.gz krecipes-0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502.zip | |
Rearrange folders structure to remove unnecessary 'krecipes' second level subfolder
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src/widgets/amountunitinput.cpp')
| -rw-r--r-- | src/widgets/amountunitinput.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/widgets/amountunitinput.cpp b/src/widgets/amountunitinput.cpp new file mode 100644 index 0000000..699f76d --- /dev/null +++ b/src/widgets/amountunitinput.cpp @@ -0,0 +1,68 @@ +/*************************************************************************** +* Copyright (C) 2006 by * +* Jason Kivlighn (jkivlighn@gmail.com) * +* * +* 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 "amountunitinput.h" + +#include <tqheader.h> +#include <tqlistview.h> + +#include "fractioninput.h" +#include "unitcombobox.h" +#include "backends/recipedb.h" +#include "datablocks/mixednumber.h" + +AmountUnitInput::AmountUnitInput( TQWidget *parent, RecipeDB *database, Unit::Type type, MixedNumber::Format format ) : TQHBox(parent), + m_item(0), m_database(database) +{ + amountInput = new FractionInput(this,format); + unitBox = new UnitComboBox(this,database,type); + unitBox->reload(); + + connect( amountInput, TQ_SIGNAL(valueChanged(const MixedNumber &)), TQ_SLOT(emitValueChanged()) ); + connect( unitBox, TQ_SIGNAL(activated(int)), TQ_SLOT(emitValueChanged()) ); + connect( amountInput, TQ_SIGNAL(returnPressed()), TQ_SIGNAL(doneEditing()) ); +} + +void AmountUnitInput::emitValueChanged() +{ + emit valueChanged( amount(), unit() ); +} + +void AmountUnitInput::setAmount( const MixedNumber &amount ) +{ + amountInput->disconnect( this ); + if ( amount.toDouble() < 0 ) + amountInput->clear(); + else + amountInput->setValue( amount, 0 ); + connect( amountInput, TQ_SIGNAL(valueChanged(const MixedNumber &)), TQ_SLOT(emitValueChanged()) ); +} + +void AmountUnitInput::setUnit( const Unit &unit ) +{ + if ( unit.id == -1 ) + unitBox->setCurrentItem(0); + else + unitBox->setSelected( unit.id ); + +} + +MixedNumber AmountUnitInput::amount() const +{ + return amountInput->value(); +} + +Unit AmountUnitInput::unit() const +{ + //TODO Potential for optimization here... avoid the database call + return m_database->unitName( unitBox->id( unitBox->currentItem() ) ); +} + +#include "amountunitinput.moc" |
