MantisBT - ParaView
View Issue Details
0015786ParaView(No Category)public2015-10-16 10:372016-08-12 09:59
Cory Quammen 
Kitware Robot 
normalminorhave not tried
closedmoved 
4.4 
 
TBD
incorrect functionality
0015786: QString.toDouble() does not parse locale-specific number strings
Report from Gerald Lodron on the paraview mailing list.

-------

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)…
No tags attached.
Issue History
2015-10-16 10:37Cory QuammenNew Issue
2015-10-20 03:32Lodron GeraldNote Added: 0035314
2016-08-12 09:59Kitware RobotNote Added: 0038910
2016-08-12 09:59Kitware RobotStatusbacklog => closed
2016-08-12 09:59Kitware RobotResolutionopen => moved
2016-08-12 09:59Kitware RobotAssigned To => Kitware Robot

Notes
(0035314)
Lodron Gerald   
2015-10-20 03:32   
Other solution:
Write an own subclass of QValidator with internal QString::toDouble() check for validity...
(0038910)
Kitware Robot   
2016-08-12 09:59   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current ParaView Issues page linked in the banner at the top of this page.