From 492af81db1fd9ccd767185d78c7527e0f6f1c941 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 20 Dec 2019 14:45:05 +0100 Subject: [PATCH] extend units calculator --- src/Gui/DlgUnitsCalculator.ui | 154 ++++++++++++++++++++++-------- src/Gui/DlgUnitsCalculatorImp.cpp | 55 +++++++++-- src/Gui/DlgUnitsCalculatorImp.h | 2 + 3 files changed, 162 insertions(+), 49 deletions(-) diff --git a/src/Gui/DlgUnitsCalculator.ui b/src/Gui/DlgUnitsCalculator.ui index 2d74c12024d8..4a94166f8564 100644 --- a/src/Gui/DlgUnitsCalculator.ui +++ b/src/Gui/DlgUnitsCalculator.ui @@ -6,14 +6,14 @@ 0 0 - 425 - 187 + 645 + 375 Units calculator - + @@ -89,42 +89,118 @@ To add a calculation press Return in the value input field - - - - - Quantity: - - - - - - - - 0 - 0 - - - - - - - - Units: - - - - - - - - 0 - 0 - - - - - + + + Quantity + + + + + + Quantity: + + + + + + + + 0 + 0 + + + + + + + + Scheme: + + + + + + + + Standard (mm/kg/s/degree) + + + + + MKS (m/kg/s/degree) + + + + + US customary (in/lb) + + + + + Imperial decimal (in/lb) + + + + + Building Euro (cm/m²/m³) + + + + + Building US (ft-in/sqft/cuft) + + + + + Metric small parts & CNC(mm, mm/min) + + + + + Imperial Civil (ft/ft^2/ft^3) + + + + + + + + Decimals: + + + + + + + 2 + + + 12 + + + 5 + + + + + + + Units: + + + + + + + + 0 + 0 + + + + + + diff --git a/src/Gui/DlgUnitsCalculatorImp.cpp b/src/Gui/DlgUnitsCalculatorImp.cpp index b37d0d8a7c27..e8dcfd837795 100644 --- a/src/Gui/DlgUnitsCalculatorImp.cpp +++ b/src/Gui/DlgUnitsCalculatorImp.cpp @@ -66,22 +66,45 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WindowFlags fl ) ui->ValueInput->setText(QString::fromLatin1("1 cm")); ui->UnitInput->setText(QString::fromLatin1("in")); - units << Base::Unit::Acceleration << Base::Unit::AmountOfSubstance << Base::Unit::Angle - << Base::Unit::Area << Base::Unit::Density << Base::Unit::ElectricalCapacitance - << Base::Unit::ElectricalInductance << Base::Unit::ElectricCharge - << Base::Unit::ElectricCurrent << Base::Unit::ElectricPotential - << Base::Unit::Frequency << Base::Unit::Force << Base::Unit::HeatFlux << Base::Unit::Length - << Base::Unit::LuminousIntensity << Base::Unit::Mass << Base::Unit::MagneticFluxDensity - << Base::Unit::Pressure << Base::Unit::Power << Base::Unit::SpecificHeat - << Base::Unit::Stress << Base::Unit::Temperature << Base::Unit::ThermalConductivity - << Base::Unit::ThermalExpansionCoefficient << Base::Unit::ThermalTransferCoefficient - << Base::Unit::TimeSpan << Base::Unit::Velocity << Base::Unit::Volume << Base::Unit::Work; + units << Base::Unit::Acceleration + << Base::Unit::AmountOfSubstance + << Base::Unit::Angle + << Base::Unit::Area + << Base::Unit::Density + << Base::Unit::ElectricalCapacitance + << Base::Unit::ElectricalInductance + << Base::Unit::ElectricCharge + << Base::Unit::ElectricCurrent + << Base::Unit::ElectricPotential + << Base::Unit::Frequency + << Base::Unit::Force + << Base::Unit::HeatFlux + << Base::Unit::Length + << Base::Unit::LuminousIntensity + << Base::Unit::Mass + << Base::Unit::MagneticFluxDensity + << Base::Unit::Pressure + << Base::Unit::Power + << Base::Unit::SpecificHeat + << Base::Unit::Stress + << Base::Unit::Temperature + << Base::Unit::ThermalConductivity + << Base::Unit::ThermalExpansionCoefficient + << Base::Unit::ThermalTransferCoefficient + << Base::Unit::TimeSpan + << Base::Unit::Velocity + << Base::Unit::Volume + << Base::Unit::Work; for (QList::iterator it = units.begin(); it != units.end(); ++it) { ui->unitsBox->addItem(it->getTypeString()); } ui->quantitySpinBox->setValue(1.0); ui->quantitySpinBox->setUnit(units.front()); + ui->spinBoxDecimals->setValue(Base::UnitsApi::getDecimals()); + + // see on_comboBoxScheme_activated + ui->comboBoxScheme->setDisabled(true); } /** Destroys the object and frees any allocated resources */ @@ -164,7 +187,19 @@ void DlgUnitsCalculator::returnPressed(void) void DlgUnitsCalculator::on_unitsBox_activated(int index) { + ui->quantitySpinBox->setValue(1.0); ui->quantitySpinBox->setUnit(units[index]); } +void DlgUnitsCalculator::on_comboBoxScheme_activated(int index) +{ + //TODO + Q_UNUSED(index) +} + +void DlgUnitsCalculator::on_spinBoxDecimals_valueChanged(int value) +{ + ui->quantitySpinBox->setDecimals(value); +} + #include "moc_DlgUnitsCalculatorImp.cpp" diff --git a/src/Gui/DlgUnitsCalculatorImp.h b/src/Gui/DlgUnitsCalculatorImp.h index 745b0913992e..00f0d2bfc0a5 100644 --- a/src/Gui/DlgUnitsCalculatorImp.h +++ b/src/Gui/DlgUnitsCalculatorImp.h @@ -53,6 +53,8 @@ protected Q_SLOTS: void textChanged(const QString); void valueChanged(const Base::Quantity&); void on_unitsBox_activated(int); + void on_comboBoxScheme_activated(int); + void on_spinBoxDecimals_valueChanged(int); void copy(void); void returnPressed(void);