@@ -47,6 +47,8 @@ QgsQueryBuilder::QgsQueryBuilder( QgsVectorLayer *layer,
47
47
48
48
mOrigSubsetString = layer->subsetString ();
49
49
50
+ mUseUnfilteredLayer ->setDisabled ( mLayer ->subsetString ().isEmpty () );
51
+
50
52
lblDataUri->setText ( layer->name () );
51
53
txtSQL->setText ( mOrigSubsetString );
52
54
@@ -124,31 +126,54 @@ void QgsQueryBuilder::on_btnSampleValues_clicked()
124
126
{
125
127
lstValues->setCursor ( Qt::WaitCursor );
126
128
129
+ QString prevSubsetString = mLayer ->subsetString ();
130
+ if ( mUseUnfilteredLayer ->isChecked () && !prevSubsetString.isEmpty () )
131
+ {
132
+ mLayer ->setSubsetString ( " " );
133
+ }
134
+
127
135
// delete connection mModelValues and lstValues
128
136
QStandardItemModel *tmp = new QStandardItemModel ();
129
137
lstValues->setModel ( tmp );
130
138
// Clear and fill the mModelValues
131
139
fillValues ( mModelFields ->data ( lstFields->currentIndex (), Qt::UserRole + 1 ).toInt (), 25 );
132
140
lstValues->setModel ( mModelValues );
133
- lstValues->setCursor ( Qt::ArrowCursor );
134
141
// delete the tmp
135
142
delete tmp;
136
143
144
+ if ( prevSubsetString != mLayer ->subsetString () )
145
+ {
146
+ mLayer ->setSubsetString ( prevSubsetString );
147
+ }
148
+
149
+ lstValues->setCursor ( Qt::ArrowCursor );
137
150
}
138
151
139
152
void QgsQueryBuilder::on_btnGetAllValues_clicked ()
140
153
{
141
154
lstValues->setCursor ( Qt::WaitCursor );
142
155
156
+ QString prevSubsetString = mLayer ->subsetString ();
157
+ if ( mUseUnfilteredLayer ->isChecked () && !prevSubsetString.isEmpty () )
158
+ {
159
+ mLayer ->setSubsetString ( " " );
160
+ }
161
+
143
162
// delete connection mModelValues and lstValues
144
163
QStandardItemModel *tmp = new QStandardItemModel ();
145
164
lstValues->setModel ( tmp );
146
165
// Clear and fill the mModelValues
147
166
fillValues ( mModelFields ->data ( lstFields->currentIndex (), Qt::UserRole + 1 ).toInt (), -1 );
148
167
lstValues->setModel ( mModelValues );
149
- lstValues->setCursor ( Qt::ArrowCursor );
150
168
// delete the tmp
151
169
delete tmp;
170
+
171
+ if ( prevSubsetString != mLayer ->subsetString () )
172
+ {
173
+ mLayer ->setSubsetString ( prevSubsetString );
174
+ }
175
+
176
+ lstValues->setCursor ( Qt::ArrowCursor );
152
177
}
153
178
154
179
void QgsQueryBuilder::test ()
@@ -159,6 +184,8 @@ void QgsQueryBuilder::test()
159
184
160
185
if ( mLayer ->setSubsetString ( txtSQL->toPlainText () ) )
161
186
{
187
+ mUseUnfilteredLayer ->setDisabled ( mLayer ->subsetString ().isEmpty () );
188
+
162
189
QMessageBox::information ( this ,
163
190
tr ( " Query Result" ),
164
191
tr ( " The where clause returned %n row(s)." , " returned test rows" , mLayer ->featureCount () ) );
@@ -319,12 +346,14 @@ void QgsQueryBuilder::clear()
319
346
{
320
347
txtSQL->clear ();
321
348
mLayer ->setSubsetString ( " " );
349
+ mUseUnfilteredLayer ->setDisabled ( true );
322
350
}
323
351
324
352
void QgsQueryBuilder::on_btnILike_clicked ()
325
353
{
326
354
txtSQL->insertPlainText ( " ILIKE " );
327
355
}
356
+
328
357
void QgsQueryBuilder::setDatasourceDescription ( QString uri )
329
358
{
330
359
lblDataUri->setText ( uri );
0 commit comments