Skip to content

Commit 6fa362b

Browse files
committed
Fix value map search widget doesn't work for null/not null searches
before an initial value is picked Refs #17986
1 parent 4afe967 commit 6fa362b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/gui/editorwidgets/qgsvaluemapsearchwidgetwrapper.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,6 @@ QgsSearchWidgetWrapper::FilterFlags QgsValueMapSearchWidgetWrapper::defaultFlags
8080

8181
QString QgsValueMapSearchWidgetWrapper::createExpression( QgsSearchWidgetWrapper::FilterFlags flags ) const
8282
{
83-
//if deselect value, always pass
84-
if ( mComboBox->currentIndex() == 0 )
85-
return QString();
86-
8783
//clear any unsupported flags
8884
flags &= supportedFlags();
8985

@@ -95,6 +91,10 @@ QString QgsValueMapSearchWidgetWrapper::createExpression( QgsSearchWidgetWrapper
9591
if ( flags & IsNotNull )
9692
return fieldName + " IS NOT NULL";
9793

94+
//if deselect value, always pass
95+
if ( mComboBox->currentIndex() == 0 )
96+
return QString();
97+
9898
QString currentKey = mComboBox->currentData().toString();
9999

100100
switch ( fldType )

tests/src/python/test_qgssearchwidgetwrapper.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ def testCreateExpression(self):
142142
# first, set it to the "select value" item
143143
c.setCurrentIndex(0)
144144

145-
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.IsNull), '')
146-
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.IsNotNull), '')
145+
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.IsNull), '"fldtxt" IS NULL')
146+
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.IsNotNull), '"fldtxt" IS NOT NULL')
147147
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.EqualTo), '')
148148
self.assertEqual(w.createExpression(QgsSearchWidgetWrapper.NotEqualTo), '')
149149

0 commit comments

Comments
 (0)