Hello

I noticed a bug in paraview on parsing double values in QLineEdits, e.g. in 
pqDoubleEdit:

double pqDoubleEdit::value()
{
  QString currentText = this->text();
  int currentPos = this->cursorPosition();
  QDoubleValidator dvalidator(NULL);
  QValidator::State state = dvalidator.validate(currentText, currentPos);
  if (state == QValidator::Acceptable || state == QValidator::Intermediate)
    {
    return currentText.toDouble();
    }
  return 0.0;
}

The Problem is that QDoubleValidator uses the current locale. If the current 
locale is e.g. German that e.g. "0.1" is not allowed, only "0,1". On the other 
side the QString function toDouble cannot parse it correctly, see documentation 
http://doc.qt.io/qt-5/qstring.html#toDouble , here the 
http://doc.qt.io/qt-5/qlocale.html#toDouble is recommended.... So all QLineEdit 
functions with toDouble must be replaced by
QLocale oL;
Double dValue = oL.toDouble( lineEdit->text())

Nasty....Other solution would be to set the locale to English for whole 
paraview regardless to the system locale, but I don't know if that is possible 
(also not very beautiful)...

Best regards


------------------------------------------------------------------------------------
Gerald Lodron

Researcher of Machine Vision Applications Group
DIGITAL - Institute for Information and Communication Technologies

JOANNEUM RESEARCH Forschungsgesellschaft mbH
Steyrergasse 17, 8010 Graz, AUSTRIA

phone:   +43-316-876-1751
general fax: +43-316-876-1751
web: http://www.joanneum.at/digital
e-mail: [email protected]<mailto:[email protected]>



_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Search the list archives at: http://markmail.org/search/?q=ParaView

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview

Reply via email to