diff options
Diffstat (limited to 'tools/designer/examples/metric/metric.ui.h')
-rw-r--r-- | tools/designer/examples/metric/metric.ui.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/designer/examples/metric/metric.ui.h b/tools/designer/examples/metric/metric.ui.h new file mode 100644 index 000000000..7d9db780a --- /dev/null +++ b/tools/designer/examples/metric/metric.ui.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** ui.h extension file, included from the uic-generated form implementation. +** +** If you wish to add, delete or rename functions respectively slots use +** TQt Designer which will update this file, preserving your code. Create an +** init() function in place of a constructor, and a destroy() function in +** place of a destructor. +*****************************************************************************/ + +#include <qvalidator.h> + +void ConversionForm::init() +{ + numberLineEdit->setValidator( new TQDoubleValidator( numberLineEdit ) ); + numberLineEdit->setText( "10" ); + convert(); + numberLineEdit->selectAll(); +} + +void ConversionForm::convert() +{ + enum MetricUnits { + Kilometers, + Meters, + Centimeters, + Millimeters + }; + enum OldUnits { + Miles, + Yards, + Feet, + Inches + }; + + // Retrieve the input + double input = numberLineEdit->text().toDouble(); + double scaledInput = input; + + // internally convert the input to millimeters + switch ( fromComboBox->currentItem() ) { + case Kilometers: + scaledInput *= 1000000; + break; + case Meters: + scaledInput *= 1000; + break; + case Centimeters: + scaledInput *= 10; + break; + } + + //convert to inches + double result = scaledInput * 0.0393701; + + switch ( toComboBox->currentItem() ) { + case Miles: + result /= 63360; + break; + case Yards: + result /= 36; + break; + case Feet: + result /= 12; + break; + } + + // set the result + int decimals = decimalsSpinBox->value(); + resultLineEdit->setText( TQString::number( result, 'f', decimals ) ); + numberLineEdit->setText( TQString::number( input, 'f', decimals ) ); +} + |