[QGIS Commit] r11711 - trunk/qgis/src/app
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Sep 25 07:31:10 EDT 2009
Author: mhugent
Date: 2009-09-25 07:31:09 -0400 (Fri, 25 Sep 2009)
New Revision: 11711
Modified:
trunk/qgis/src/app/qgssearchquerybuilder.cpp
Log:
Speed up listing of field values in search dialog by using QSet
Modified: trunk/qgis/src/app/qgssearchquerybuilder.cpp
===================================================================
--- trunk/qgis/src/app/qgssearchquerybuilder.cpp 2009-09-25 08:27:38 UTC (rev 11710)
+++ trunk/qgis/src/app/qgssearchquerybuilder.cpp 2009-09-25 11:31:09 UTC (rev 11711)
@@ -117,6 +117,9 @@
mModelValues->blockSignals( true );
lstValues->setUpdatesEnabled( false );
+ /**MH: keep already inserted values in a set. Querying is much faster compared to QStandardItemModel::findItems*/
+ QSet<QString> insertedValues;
+
while ( mLayer->nextFeature( feat ) &&
( limit == 0 || mModelValues->rowCount() != limit ) )
{
@@ -130,12 +133,12 @@
}
// add item only if it's not there already
- QList<QStandardItem *> items = mModelValues->findItems( value );
- if ( items.isEmpty() )
+ if ( !insertedValues.contains( value ) )
{
QStandardItem *myItem = new QStandardItem( value );
myItem->setEditable( false );
mModelValues->insertRow( mModelValues->rowCount(), myItem );
+ insertedValues.insert( value );
}
}
// Unblock for normal use
More information about the QGIS-commit
mailing list