Skip to content

Commit 098aad5

Browse files
committed
Show feedback message when using Select by Expression, to match
Select by Form behaviour
1 parent 500dff1 commit 098aad5

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/gui/qgsexpressionselectiondialog.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,30 +104,52 @@ void QgsExpressionSelectionDialog::mActionSelect_triggered()
104104
{
105105
mLayer->selectByExpression( mExpressionBuilder->expressionText(),
106106
QgsVectorLayer::SetSelection );
107+
pushSelectedFeaturesMessage();
107108
saveRecent();
108109
}
109110

110111
void QgsExpressionSelectionDialog::mActionAddToSelection_triggered()
111112
{
112113
mLayer->selectByExpression( mExpressionBuilder->expressionText(),
113114
QgsVectorLayer::AddToSelection );
115+
pushSelectedFeaturesMessage();
114116
saveRecent();
115117
}
116118

117119
void QgsExpressionSelectionDialog::mActionSelectIntersect_triggered()
118120
{
119121
mLayer->selectByExpression( mExpressionBuilder->expressionText(),
120122
QgsVectorLayer::IntersectSelection );
123+
pushSelectedFeaturesMessage();
121124
saveRecent();
122125
}
123126

124127
void QgsExpressionSelectionDialog::mActionRemoveFromSelection_triggered()
125128
{
126129
mLayer->selectByExpression( mExpressionBuilder->expressionText(),
127130
QgsVectorLayer::RemoveFromSelection );
131+
pushSelectedFeaturesMessage();
128132
saveRecent();
129133
}
130134

135+
void QgsExpressionSelectionDialog::pushSelectedFeaturesMessage()
136+
{
137+
int count = mLayer->selectedFeatureCount();
138+
if ( count > 0 )
139+
{
140+
mMessageBar->pushMessage( QString(),
141+
tr( "%1 matching %2 selected" ).arg( count )
142+
.arg( count == 1 ? tr( "feature" ) : tr( "features" ) ),
143+
Qgis::Info );
144+
}
145+
else
146+
{
147+
mMessageBar->pushMessage( QString(),
148+
tr( "No matching features found" ),
149+
Qgis::Warning );
150+
}
151+
}
152+
131153
void QgsExpressionSelectionDialog::mButtonZoomToFeatures_clicked()
132154
{
133155
if ( mExpressionBuilder->expressionText().isEmpty() || !mMapCanvas )

src/gui/qgsexpressionselectiondialog.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,11 @@ class GUI_EXPORT QgsExpressionSelectionDialog : public QDialog, private Ui::QgsE
111111

112112
private:
113113
void saveRecent();
114+
void pushSelectedFeaturesMessage();
114115
QgsVectorLayer *mLayer = nullptr;
115116
QgsMessageBar *mMessageBar = nullptr;
116117
QgsMapCanvas *mMapCanvas = nullptr;
118+
117119
};
118120

119121
#endif

0 commit comments

Comments
 (0)