+ fix a couple of issues with InputField used in property editor

This commit is contained in:
wmayer 2014-06-14 16:22:56 +02:00
parent 00e041ffb3
commit bfae053eb4
2 changed files with 11 additions and 2 deletions

View File

@ -111,8 +111,9 @@ QPixmap InputField::getValidationIcon(const char* name, const QSize& size) const
void InputField::updateText(const Base::Quantity& quant)
{
double dFactor;
QString unit;
setText(quant.getUserString(dFactor,unit));
QString txt = quant.getUserString(dFactor,actUnitStr);
actUnitValue = quant.getValue()/dFactor;
setText(txt);
}
void InputField::resizeEvent(QResizeEvent *)
@ -517,6 +518,7 @@ void InputField::wheelEvent (QWheelEvent * event)
val = Minimum;
this->setText(QString::fromUtf8("%L1 %2").arg(val).arg(actUnitStr));
selectNumber();
event->accept();
}

View File

@ -89,6 +89,13 @@ bool PropertyModel::setData(const QModelIndex& index, const QVariant & value, in
if (fabs(d-v) > FLT_EPSILON)
return item->setData(value);
}
// Special case handling for quantities
else if (data.canConvert<Base::Quantity>() && value.canConvert<Base::Quantity>()) {
const Base::Quantity& val1 = data.value<Base::Quantity>();
const Base::Quantity& val2 = value.value<Base::Quantity>();
if (!(val1 == val2))
return item->setData(value);
}
else if (data != value)
return item->setData(value);
}