From 46db0c24e8a0dc18962fe14401e4fd9071ece1cd Mon Sep 17 00:00:00 2001 From: jriegel Date: Sat, 9 Nov 2013 11:02:23 +0100 Subject: [PATCH] further implementing InputField and UnitsCalculator --- src/Gui/DlgUnitsCalculator.ui | 4 ++-- src/Gui/DlgUnitsCalculatorImp.cpp | 33 ++++++++++++++++++++++++++++--- src/Gui/DlgUnitsCalculatorImp.h | 2 ++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/Gui/DlgUnitsCalculator.ui b/src/Gui/DlgUnitsCalculator.ui index 68c87598b4..480c4b102a 100644 --- a/src/Gui/DlgUnitsCalculator.ui +++ b/src/Gui/DlgUnitsCalculator.ui @@ -51,10 +51,10 @@ - + - 100 + 150 0 diff --git a/src/Gui/DlgUnitsCalculatorImp.cpp b/src/Gui/DlgUnitsCalculatorImp.cpp index 544b04108c..6d6900b5bd 100644 --- a/src/Gui/DlgUnitsCalculatorImp.cpp +++ b/src/Gui/DlgUnitsCalculatorImp.cpp @@ -51,6 +51,9 @@ DlgUnitsCalculator::DlgUnitsCalculator( QWidget* parent, Qt::WFlags fl ) connect(this->pushButton_Close, SIGNAL(pressed()), this, SLOT(accept())); connect(this->pushButton_Copy, SIGNAL(pressed()), this, SLOT(copy())); + connect(this->ValueInput, SIGNAL(parseError(QString)), this, SLOT(parseError(QString))); + connect(this->UnitInput, SIGNAL(parseError(QString)), this, SLOT(parseError(QString))); + actUnit.setInvalid(); } @@ -81,16 +84,40 @@ void DlgUnitsCalculator::unitValueChanged(const Base::Quantity& unit) } void DlgUnitsCalculator::valueChanged(const Base::Quantity& quant) -{ +{ + if(actUnit.isValid()){ - this->ValueOutput->setValue(Base::Quantity(quant.getValue()/actUnit.getValue(),actUnit.getUnit())); + + double value = quant.getValue()/actUnit.getValue(); + QString out(QString::fromAscii("%1 %2")); + out = out.arg(value).arg(this->UnitInput->text()); + this->ValueOutput->setText(out); + QPalette *palette = new QPalette(); + palette->setColor(QPalette::Base,QColor(200,255,200)); + this->ValueOutput->setPalette(*palette); + }else{ - this->ValueOutput->setValue(quant); + //this->ValueOutput->setValue(quant); + this->ValueOutput->setText(QString::fromAscii(quant.getUserString().c_str())); + QPalette *palette = new QPalette(); + palette->setColor(QPalette::Base,QColor(200,255,200)); + this->ValueOutput->setPalette(*palette); } actValue = quant; } +void DlgUnitsCalculator::parseError(const QString& errorText) +{ + + + QPalette *palette = new QPalette(); + palette->setColor(QPalette::Base,QColor(255,200,200)); + this->ValueOutput->setPalette(*palette); + + this->ValueOutput->setText(QString()); + +} void DlgUnitsCalculator::copy(void) { //TODO: copy the value to the clipboard diff --git a/src/Gui/DlgUnitsCalculatorImp.h b/src/Gui/DlgUnitsCalculatorImp.h index 917890cc1b..fbe3cfe93e 100644 --- a/src/Gui/DlgUnitsCalculatorImp.h +++ b/src/Gui/DlgUnitsCalculatorImp.h @@ -52,6 +52,8 @@ protected Q_SLOTS: void copy(void); void help(void); + void parseError(const QString& errorText); + private: Base::Quantity actValue; Base::Quantity actUnit;