QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
Go to the documentation of this file.
38 connect( mActionSelect, &QAction::triggered,
this, &QgsExpressionSelectionDialog::mActionSelect_triggered );
39 connect( mActionAddToSelection, &QAction::triggered,
this, &QgsExpressionSelectionDialog::mActionAddToSelection_triggered );
40 connect( mActionRemoveFromSelection, &QAction::triggered,
this, &QgsExpressionSelectionDialog::mActionRemoveFromSelection_triggered );
41 connect( mActionSelectIntersect, &QAction::triggered,
this, &QgsExpressionSelectionDialog::mActionSelectIntersect_triggered );
42 connect( mButtonZoomToFeatures, &QToolButton::clicked,
this, &QgsExpressionSelectionDialog::mButtonZoomToFeatures_clicked );
43 connect( mPbnClose, &QPushButton::clicked,
this, &QgsExpressionSelectionDialog::mPbnClose_clicked );
45 setWindowTitle( tr(
"%1 — Select by Expression" ).arg( layer->
name() ) );
52 mButtonSelect->addAction( mActionSelect );
53 mButtonSelect->addAction( mActionAddToSelection );
54 mButtonSelect->addAction( mActionRemoveFromSelection );
55 mButtonSelect->addAction( mActionSelectIntersect );
56 mButtonSelect->setDefaultAction( mActionSelect );
59 mExpressionBuilder->initWithLayer( layer, context, QStringLiteral(
"selection" ) );
60 mExpressionBuilder->setExpressionText( startText );
63 mButtonZoomToFeatures->setVisible(
false );
65 connect( buttonBox, &QDialogButtonBox::helpRequested,
this, &QgsExpressionSelectionDialog::showHelp );
70 return mExpressionBuilder;
75 mExpressionBuilder->setExpressionText( text );
80 return mExpressionBuilder->expressionText();
86 mExpressionBuilder->setGeomCalculator( da );
91 mMessageBar = messageBar;
97 mButtonZoomToFeatures->setVisible(
true );
100 void QgsExpressionSelectionDialog::mActionSelect_triggered()
104 pushSelectedFeaturesMessage();
108 void QgsExpressionSelectionDialog::mActionAddToSelection_triggered()
112 pushSelectedFeaturesMessage();
116 void QgsExpressionSelectionDialog::mActionSelectIntersect_triggered()
120 pushSelectedFeaturesMessage();
124 void QgsExpressionSelectionDialog::mActionRemoveFromSelection_triggered()
128 pushSelectedFeaturesMessage();
132 void QgsExpressionSelectionDialog::pushSelectedFeaturesMessage()
137 const int timeout =
QgsSettings().
value( QStringLiteral(
"qgis/messageTimeout" ), 5 ).toInt();
142 tr(
"%n matching feature(s) selected",
"matching features", count ),
148 tr(
"No matching features found" ),
153 void QgsExpressionSelectionDialog::mButtonZoomToFeatures_clicked()
155 if ( mExpressionBuilder->expressionText().isEmpty() || !mMapCanvas )
169 int featureCount = 0;
183 int timeout = settings.
value( QStringLiteral(
"qgis/messageTimeout" ), 5 ).toInt();
184 if ( featureCount > 0 )
190 tr(
"Zoomed to %n matching feature(s)",
"number of matching features", featureCount ),
195 else if ( mMessageBar )
198 tr(
"No matching features found" ),
210 void QgsExpressionSelectionDialog::mPbnClose_clicked()
221 void QgsExpressionSelectionDialog::saveRecent()
223 mExpressionBuilder->expressionTree()->saveToRecent( mExpressionBuilder->expressionText(), QStringLiteral(
"selection" ) );
226 void QgsExpressionSelectionDialog::showHelp()
228 QgsHelp::openHelp( QStringLiteral(
"introduction/general_tools.html#automatic-selection" ) );
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const FINAL
Queries the layer for features specified in request.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
static QIcon getThemeIcon(const QString &name)
Helper to get a theme icon.
void combineExtentWith(const QgsRectangle &rect)
Expands the rectangle so that it covers both the original rectangle and the given rectangle.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
void setGeomCalculator(const QgsDistanceArea &da)
Sets geometry calculator used in distance/area calculations.
QgsExpressionSelectionDialog(QgsVectorLayer *layer, const QString &startText=QString(), QWidget *parent=nullptr)
Creates a new selection dialog.
@ RemoveFromSelection
Remove from current selection.
const QgsMapSettings & mapSettings() const
Gets access to properties used for map rendering.
void setMapCanvas(QgsMapCanvas *canvas)
Sets a map canvas associated with the dialog.
Map canvas is a class for displaying all GIS data types on a canvas.
void setMinimal() SIP_HOLDGIL
Set a rectangle so that min corner is at max and max corner is at min.
QgsRectangle layerExtentToOutputExtent(const QgsMapLayer *layer, QgsRectangle extent) const
transform bounding box from layer's CRS to output CRS
Q_INVOKABLE void selectByExpression(const QString &expression, QgsVectorLayer::SelectBehavior behavior=QgsVectorLayer::SetSelection)
Selects matching features using an expression.
static QList< QgsExpressionContextScope * > globalProjectLayerScopes(const QgsMapLayer *layer)
Creates a list of three scopes: global, layer's project and layer.
This class is a composition of two QSettings instances:
QString expressionText()
Returns the current expression text.
A rectangle specified with double values.
QgsFeatureRequest & setExpressionContext(const QgsExpressionContext &context)
Sets the expression context used to evaluate filter expressions.
QgsFeatureRequest & setFilterExpression(const QString &expression)
Set the filter expression.
static void enableAutoGeometryRestore(QWidget *widget, const QString &key=QString())
Register the widget to allow its position to be automatically saved and restored when open and closed...
This class wraps a request for features to a vector layer (or directly its vector data provider).
@ AddToSelection
Add selection to current selection.
QgsExpressionBuilderWidget * expressionBuilder()
The builder widget that is used by the dialog.
A bar for displaying non-blocking messages to the user.
QgsFeatureRequest & setNoAttributes()
Set that no attributes will be fetched.
virtual bool isEmpty() const
Returns true if the geometry is empty.
const QgsAbstractGeometry * constGet() const SIP_HOLDGIL
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
void closeEvent(QCloseEvent *closeEvent) override
Implementation for closeEvent Saves the window geometry.
void zoomToFeatureExtent(QgsRectangle &rect)
Zooms to feature extent.
@ SetSelection
Set selection, removing any existing selection.
@ IntersectSelection
Modify current selection to include only select features which match.
bool nextFeature(QgsFeature &f)
A geometry is the spatial representation of a feature.
static void openHelp(const QString &key)
Opens help topic for the given help key using default system web browser.
void setExpressionText(const QString &text)
Sets the current expression text.
Represents a vector layer which manages a vector based data sets.
void done(int r) override
Implementation for done (default behavior when pressing esc) Calls close, so the window geometry gets...
void setMessageBar(QgsMessageBar *messageBar)
Sets the message bar to display feedback from the dialog.
QgsRectangle boundingBox() const
Returns the bounding box of the geometry.
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
int selectedFeatureCount() const
Returns the number of features that are selected in this layer.
Wrapper for iterator of features from vector data provider or vector layer.
void pushMessage(const QString &text, Qgis::MessageLevel level=Qgis::Info, int duration=5)
A convenience method for pushing a message with the specified text to the bar.