@@ -56,7 +56,16 @@ QgsFieldValidator::QgsFieldValidator( QObject *parent, const QgsField &field, co
56
56
{
57
57
if ( mField .length () > 0 && mField .precision () > 0 )
58
58
{
59
- QString re = QStringLiteral ( " -?\\ d{0,%1}([\\ .,]\\ d{0,%2})?" ).arg ( mField .length () - mField .precision () ).arg ( mField .precision () );
59
+ QString re;
60
+ // Also accept locale's decimalPoint if it's not a dot
61
+ if ( QLocale ().decimalPoint () != ' .' )
62
+ {
63
+ re = QStringLiteral ( " -?\\ d{0,%1}([\\ .%2]\\ d{0,%3})?" ).arg ( mField .length () - mField .precision () ).arg ( QLocale ().decimalPoint () ).arg ( mField .precision () );
64
+ }
65
+ else
66
+ {
67
+ re = QStringLiteral ( " -?\\ d{0,%1}([\\ .,]\\ d{0,%2})?" ).arg ( mField .length () - mField .precision () ).arg ( mField .precision () );
68
+ }
60
69
mValidator = new QRegExpValidator ( QRegExp ( re ), parent );
61
70
}
62
71
else if ( mField .length () > 0 && mField .precision () == 0 )
@@ -66,7 +75,16 @@ QgsFieldValidator::QgsFieldValidator( QObject *parent, const QgsField &field, co
66
75
}
67
76
else if ( mField .precision () > 0 )
68
77
{
69
- QString re = QStringLiteral ( " -?\\ d*([\\ .,]\\ d{0,%1})?" ).arg ( mField .precision () );
78
+ QString re;
79
+ // Also accept locale's decimalPoint if it's not a dot
80
+ if ( QLocale ().decimalPoint () != ' .' )
81
+ {
82
+ re = QStringLiteral ( " -?\\ d*([\\ .%1]\\ d{0,%2})?" ).arg ( QLocale ().decimalPoint (), mField .precision () );
83
+ }
84
+ else
85
+ {
86
+ re = QStringLiteral ( " -?\\ d*([\\ .]\\ d{0,%1})?" ).arg ( mField .precision () );
87
+ }
70
88
mValidator = new QRegExpValidator ( QRegExp ( re ), parent );
71
89
}
72
90
else
0 commit comments