@@ -57,6 +57,12 @@ QgsNewVectorLayerDialog::QgsNewVectorLayerDialog( QWidget *parent, Qt::WFlags fl
57
57
58
58
mCrsId = srs.srsid ();
59
59
leSpatialRefSys->setText ( srs.toProj4 () );
60
+
61
+ connect ( mNameEdit , SIGNAL ( textChanged ( QString ) ), this , SLOT ( nameChanged ( QString ) ) );
62
+ connect ( mAttributeView , SIGNAL ( itemSelectionChanged () ), this , SLOT ( selectionChanged () ) );
63
+
64
+ mAddAttributeButton ->setEnabled ( false );
65
+ mRemoveAttributeButton ->setEnabled ( false );
60
66
}
61
67
62
68
QgsNewVectorLayerDialog::~QgsNewVectorLayerDialog ()
@@ -69,23 +75,24 @@ void QgsNewVectorLayerDialog::on_mTypeBox_currentIndexChanged( int index )
69
75
switch ( index )
70
76
{
71
77
case 0 : // Text data
72
- mWidth ->setValidator ( new QIntValidator ( 1 , 255 , this ) );
78
+ if ( mWidth ->text ().toInt () < 1 || mWidth ->text ().toInt () > 255 )
79
+ mWidth ->setText ( " 80" );
73
80
mPrecision ->setEnabled ( false );
81
+ mWidth ->setValidator ( new QIntValidator ( 1 , 255 , this ) );
74
82
break ;
75
83
76
84
case 1 : // Whole number
77
- if ( mWidth ->text ().toInt () > 10 )
85
+ if ( mWidth ->text ().toInt () < 1 || mWidth -> text (). toInt () > 10 )
78
86
mWidth ->setText ( " 10" );
79
87
mPrecision ->setEnabled ( false );
80
88
mWidth ->setValidator ( new QIntValidator ( 1 , 10 , this ) );
81
89
break ;
82
90
83
91
case 2 : // Decimal number
84
- if ( mWidth ->text ().toInt () > 20 )
92
+ if ( mWidth ->text ().toInt () < 1 || mWidth -> text (). toInt () > 20 )
85
93
mWidth ->setText ( " 20" );
86
- mPrecision ->setEnabled ( false );
87
- mWidth ->setValidator ( new QIntValidator ( 1 , 20 , this ) );
88
94
mPrecision ->setEnabled ( true );
95
+ mWidth ->setValidator ( new QIntValidator ( 1 , 20 , this ) );
89
96
break ;
90
97
91
98
default :
@@ -176,3 +183,13 @@ QString QgsNewVectorLayerDialog::selectedFileFormat() const
176
183
QString myType = mFileFormatComboBox ->itemData ( mFileFormatComboBox ->currentIndex (), Qt::UserRole ).toString ();
177
184
return myType;
178
185
}
186
+
187
+ void QgsNewVectorLayerDialog::nameChanged ( QString name )
188
+ {
189
+ mAddAttributeButton ->setDisabled ( name.isEmpty () || mAttributeView ->findItems ( name, Qt::MatchExactly ).size () > 0 );
190
+ }
191
+
192
+ void QgsNewVectorLayerDialog::selectionChanged ()
193
+ {
194
+ mRemoveAttributeButton ->setDisabled ( mAttributeView ->selectedItems ().size () == 0 );
195
+ }
0 commit comments