diff --git a/src/gui/qgsquerybuilder.cpp b/src/gui/qgsquerybuilder.cpp index c6d4490..b3dd26d 100644 --- a/src/gui/qgsquerybuilder.cpp +++ b/src/gui/qgsquerybuilder.cpp @@ -122,7 +122,16 @@ void QgsQueryBuilder::fillValues( int idx, int limit ) void QgsQueryBuilder::on_btnSampleValues_clicked() { + + lstValues->setCursor( Qt::WaitCursor ); + + //if a query is existing, save it and temporarily clear it to get all the values + QString subsetQuery= txtSQL->toPlainText(); + if ( ! subsetQuery.isNull() ) + { + mLayer->setSubsetString(""); + } //delete connection mModelValues and lstValues QStandardItemModel *tmp = new QStandardItemModel(); @@ -131,6 +140,13 @@ void QgsQueryBuilder::on_btnSampleValues_clicked() fillValues( mModelFields->data( lstFields->currentIndex(), Qt::UserRole + 1 ).toInt(), 25 ); lstValues->setModel( mModelValues ); lstValues->setCursor( Qt::ArrowCursor ); + + //Restore the existing query + if ( ! subsetQuery.isNull() ) + { + mLayer->setSubsetString(subsetQuery); + } + //delete the tmp delete tmp; @@ -139,7 +155,14 @@ void QgsQueryBuilder::on_btnSampleValues_clicked() void QgsQueryBuilder::on_btnGetAllValues_clicked() { lstValues->setCursor( Qt::WaitCursor ); - + + //if a query is existing, save it and temporarily clear it to get all the values + QString subsetQuery= txtSQL->toPlainText(); + if ( ! subsetQuery.isNull() ) + { + //mLayer->setSubsetString(""); + } + //delete connection mModelValues and lstValues QStandardItemModel *tmp = new QStandardItemModel(); lstValues->setModel( tmp ); @@ -147,6 +170,13 @@ void QgsQueryBuilder::on_btnGetAllValues_clicked() fillValues( mModelFields->data( lstFields->currentIndex(), Qt::UserRole + 1 ).toInt(), -1 ); lstValues->setModel( mModelValues ); lstValues->setCursor( Qt::ArrowCursor ); + + //Restore the existing query + if ( ! subsetQuery.isNull() ) + { + //mLayer->setSubsetString(subsetQuery); + } + //delete the tmp delete tmp; }