@@ -36,7 +36,7 @@ QgsNewVectorLayerDialog::QgsNewVectorLayerDialog( QWidget *parent, Qt::WFlags fl
36
36
mTypeBox ->addItem ( tr ( " Decimal number" ), " Real" );
37
37
38
38
mWidth ->setValidator ( new QIntValidator ( 1 , 255 , this ) );
39
- mPrecision ->setValidator ( new QIntValidator ( 0 , 20 , this ) );
39
+ mPrecision ->setValidator ( new QIntValidator ( 0 , 5 , this ) );
40
40
41
41
mPointRadioButton ->setChecked ( true );
42
42
mFileFormatComboBox ->addItem ( tr ( " ESRI Shapefile" ), " ESRI Shapefile" );
@@ -65,7 +65,33 @@ QgsNewVectorLayerDialog::~QgsNewVectorLayerDialog()
65
65
66
66
void QgsNewVectorLayerDialog::on_mTypeBox_currentIndexChanged ( int index )
67
67
{
68
- mPrecision ->setEnabled ( index == 2 ); // Real
68
+ // FIXME: sync with providers/ogr/qgsogrprovider.cpp
69
+ switch ( index )
70
+ {
71
+ case 0 : // Text data
72
+ mWidth ->setValidator ( new QIntValidator ( 1 , 255 , this ) );
73
+ mPrecision ->setEnabled ( false );
74
+ break ;
75
+
76
+ case 1 : // Whole number
77
+ if ( mWidth ->text ().toInt () > 10 )
78
+ mWidth ->setText ( " 10" );
79
+ mPrecision ->setEnabled ( false );
80
+ mWidth ->setValidator ( new QIntValidator ( 1 , 10 , this ) );
81
+ break ;
82
+
83
+ case 2 : // Decimal number
84
+ if ( mWidth ->text ().toInt () > 20 )
85
+ mWidth ->setText ( " 20" );
86
+ mPrecision ->setEnabled ( false );
87
+ mWidth ->setValidator ( new QIntValidator ( 1 , 20 , this ) );
88
+ mPrecision ->setEnabled ( true );
89
+ break ;
90
+
91
+ default :
92
+ QgsDebugMsg ( " unexpected index" );
93
+ break ;
94
+ }
69
95
}
70
96
71
97
QGis::WkbType QgsNewVectorLayerDialog::selectedType () const
0 commit comments