@@ -250,16 +250,19 @@ void QgsAttributeTableDialog::on_cbxShowSelectedOnly_toggled( bool theFlag )
250
250
251
251
void QgsAttributeTableDialog::columnBoxInit ()
252
252
{
253
- QgsFieldMap fieldMap = mLayer ->dataProvider ()-> fields ();
253
+ QgsFieldMap fieldMap = mLayer ->pendingFields ();
254
254
QgsFieldMap::Iterator it = fieldMap.begin ();
255
255
256
256
for ( ; it != fieldMap.end (); ++it )
257
- mColumnBox ->addItem ( it.value ().name () );
257
+ if ( mLayer ->editType ( it.key () ) != QgsVectorLayer::Hidden )
258
+ mColumnBox ->addItem ( it.value ().name () );
259
+
260
+ mColumnBox ->setCurrentIndex ( mColumnBox ->findText ( mLayer ->displayField () ) );
258
261
}
259
262
260
263
int QgsAttributeTableDialog::columnBoxColumnId ()
261
264
{
262
- QgsFieldMap fieldMap = mLayer ->dataProvider ()-> fields ();
265
+ QgsFieldMap fieldMap = mLayer ->pendingFields ();
263
266
QgsFieldMap::Iterator it = fieldMap.begin ();
264
267
265
268
for ( ; it != fieldMap.end (); ++it )
@@ -594,8 +597,8 @@ void QgsAttributeTableDialog::search()
594
597
595
598
QString str = mColumnBox ->currentText ();
596
599
597
- const QgsFieldMap& flds = mLayer ->dataProvider ()-> fields ();
598
- int fldIndex = mLayer ->dataProvider ()-> fieldNameIndex ( str );
600
+ const QgsFieldMap& flds = mLayer ->pendingFields ();
601
+ int fldIndex = mLayer ->fieldNameIndex ( str );
599
602
QVariant::Type fldType = flds[fldIndex].type ();
600
603
bool numeric = ( fldType == QVariant::Int || fldType == QVariant::Double );
601
604
@@ -604,7 +607,7 @@ void QgsAttributeTableDialog::search()
604
607
else
605
608
str += " ~ '" ;
606
609
607
- str += mQuery ->displayText ().replace (" '" , " ''" ); // escape quotes
610
+ str += mQuery ->displayText ().replace ( " '" , " ''" ); // escape quotes
608
611
str += " '" ;
609
612
610
613
doSearch ( str );
@@ -673,7 +676,7 @@ void QgsAttributeTableDialog::on_mAddAttribute_clicked()
673
676
return ;
674
677
}
675
678
676
- QgsAddAttrDialog dialog ( mLayer -> dataProvider () , this );
679
+ QgsAddAttrDialog dialog ( mLayer , this );
677
680
if ( dialog.exec () == QDialog::Accepted )
678
681
{
679
682
mLayer ->beginEditCommand ( tr ( " Attribute added" ) );
0 commit comments