@@ -60,7 +60,7 @@ QgsSearchQueryBuilder::~QgsSearchQueryBuilder()
60
60
void QgsSearchQueryBuilder::populateFields ()
61
61
{
62
62
QgsDebugMsg ( " entering." );
63
- const QgsFieldMap& fields = mLayer ->dataProvider ()-> fields ();
63
+ const QgsFieldMap& fields = mLayer ->pendingFields ();
64
64
for ( QgsFieldMap::const_iterator it = fields.begin (); it != fields.end (); ++it )
65
65
{
66
66
QString fieldName = it->name ();
@@ -91,15 +91,17 @@ void QgsSearchQueryBuilder::setupListViews()
91
91
92
92
void QgsSearchQueryBuilder::getFieldValues ( int limit )
93
93
{
94
+ if ( !mLayer )
95
+ {
96
+ return ;
97
+ }
94
98
// clear the values list
95
99
mModelValues ->clear ();
96
100
97
- QgsVectorDataProvider* provider = mLayer ->dataProvider ();
98
-
99
101
// determine the field type
100
102
QString fieldName = mModelFields ->data ( lstFields->currentIndex () ).toString ();
101
103
int fieldIndex = mFieldMap [fieldName];
102
- QgsField field = provider->fields ()[fieldIndex];
104
+ QgsField field = mLayer -> pendingFields ()[fieldIndex]; // provider->fields()[fieldIndex];
103
105
bool numeric = ( field.type () == QVariant::Int || field.type () == QVariant::Double );
104
106
105
107
QgsFeature feat;
@@ -108,14 +110,14 @@ void QgsSearchQueryBuilder::getFieldValues( int limit )
108
110
QgsAttributeList attrs;
109
111
attrs.append ( fieldIndex );
110
112
111
- provider ->select ( attrs, QgsRectangle (), false );
113
+ mLayer ->select ( attrs, QgsRectangle (), false );
112
114
113
115
lstValues->setCursor ( Qt::WaitCursor );
114
116
// Block for better performance
115
117
mModelValues ->blockSignals ( true );
116
118
lstValues->setUpdatesEnabled ( false );
117
119
118
- while ( provider ->nextFeature ( feat ) &&
120
+ while ( mLayer ->nextFeature ( feat ) &&
119
121
( limit == 0 || mModelValues ->rowCount () != limit ) )
120
122
{
121
123
const QgsAttributeMap& attributes = feat.attributeMap ();
0 commit comments