@@ -47,6 +47,8 @@ QgsQueryBuilder::QgsQueryBuilder( QgsVectorLayer *layer,
4747
4848 mOrigSubsetString = layer->subsetString ();
4949
50+ mUseUnfilteredLayer ->setDisabled ( mLayer ->subsetString ().isEmpty () );
51+
5052 lblDataUri->setText ( layer->name () );
5153 txtSQL->setText ( mOrigSubsetString );
5254
@@ -124,31 +126,54 @@ void QgsQueryBuilder::on_btnSampleValues_clicked()
124126{
125127 lstValues->setCursor ( Qt::WaitCursor );
126128
129+ QString prevSubsetString = mLayer ->subsetString ();
130+ if ( mUseUnfilteredLayer ->isChecked () && !prevSubsetString.isEmpty () )
131+ {
132+ mLayer ->setSubsetString ( " " );
133+ }
134+
127135 // delete connection mModelValues and lstValues
128136 QStandardItemModel *tmp = new QStandardItemModel ();
129137 lstValues->setModel ( tmp );
130138 // Clear and fill the mModelValues
131139 fillValues ( mModelFields ->data ( lstFields->currentIndex (), Qt::UserRole + 1 ).toInt (), 25 );
132140 lstValues->setModel ( mModelValues );
133- lstValues->setCursor ( Qt::ArrowCursor );
134141 // delete the tmp
135142 delete tmp;
136143
144+ if ( prevSubsetString != mLayer ->subsetString () )
145+ {
146+ mLayer ->setSubsetString ( prevSubsetString );
147+ }
148+
149+ lstValues->setCursor ( Qt::ArrowCursor );
137150}
138151
139152void QgsQueryBuilder::on_btnGetAllValues_clicked ()
140153{
141154 lstValues->setCursor ( Qt::WaitCursor );
142155
156+ QString prevSubsetString = mLayer ->subsetString ();
157+ if ( mUseUnfilteredLayer ->isChecked () && !prevSubsetString.isEmpty () )
158+ {
159+ mLayer ->setSubsetString ( " " );
160+ }
161+
143162 // delete connection mModelValues and lstValues
144163 QStandardItemModel *tmp = new QStandardItemModel ();
145164 lstValues->setModel ( tmp );
146165 // Clear and fill the mModelValues
147166 fillValues ( mModelFields ->data ( lstFields->currentIndex (), Qt::UserRole + 1 ).toInt (), -1 );
148167 lstValues->setModel ( mModelValues );
149- lstValues->setCursor ( Qt::ArrowCursor );
150168 // delete the tmp
151169 delete tmp;
170+
171+ if ( prevSubsetString != mLayer ->subsetString () )
172+ {
173+ mLayer ->setSubsetString ( prevSubsetString );
174+ }
175+
176+ lstValues->setCursor ( Qt::ArrowCursor );
152177}
153178
154179void QgsQueryBuilder::test ()
@@ -159,6 +184,8 @@ void QgsQueryBuilder::test()
159184
160185 if ( mLayer ->setSubsetString ( txtSQL->toPlainText () ) )
161186 {
187+ mUseUnfilteredLayer ->setDisabled ( mLayer ->subsetString ().isEmpty () );
188+
162189 QMessageBox::information ( this ,
163190 tr ( " Query Result" ),
164191 tr ( " The where clause returned %n row(s)." , " returned test rows" , mLayer ->featureCount () ) );
@@ -319,12 +346,14 @@ void QgsQueryBuilder::clear()
319346{
320347 txtSQL->clear ();
321348 mLayer ->setSubsetString ( " " );
349+ mUseUnfilteredLayer ->setDisabled ( true );
322350}
323351
324352void QgsQueryBuilder::on_btnILike_clicked ()
325353{
326354 txtSQL->insertPlainText ( " ILIKE " );
327355}
356+
328357void QgsQueryBuilder::setDatasourceDescription ( QString uri )
329358{
330359 lblDataUri->setText ( uri );
0 commit comments