Skip to content

Commit 9bd0e88

Browse files
author
mhugent
committed
Speed up listing of field values in search dialog by using QSet
git-svn-id: http://svn.osgeo.org/qgis/trunk@11711 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent b723e90 commit 9bd0e88

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/app/qgssearchquerybuilder.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ void QgsSearchQueryBuilder::getFieldValues( int limit )
117117
mModelValues->blockSignals( true );
118118
lstValues->setUpdatesEnabled( false );
119119

120+
/**MH: keep already inserted values in a set. Querying is much faster compared to QStandardItemModel::findItems*/
121+
QSet<QString> insertedValues;
122+
120123
while ( mLayer->nextFeature( feat ) &&
121124
( limit == 0 || mModelValues->rowCount() != limit ) )
122125
{
@@ -130,12 +133,12 @@ void QgsSearchQueryBuilder::getFieldValues( int limit )
130133
}
131134

132135
// add item only if it's not there already
133-
QList<QStandardItem *> items = mModelValues->findItems( value );
134-
if ( items.isEmpty() )
136+
if ( !insertedValues.contains( value ) )
135137
{
136138
QStandardItem *myItem = new QStandardItem( value );
137139
myItem->setEditable( false );
138140
mModelValues->insertRow( mModelValues->rowCount(), myItem );
141+
insertedValues.insert( value );
139142
}
140143
}
141144
// Unblock for normal use

0 commit comments

Comments
 (0)