QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsprocessingfeaturesourceoptionswidget.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsprocessingfeaturesourceoptionswidget.cpp
3 ------------------------------------
4 Date : March 2020
5 Copyright : (C) 2020 Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7
8 ***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
18
19#include "qgis.h"
20
21#include "moc_qgsprocessingfeaturesourceoptionswidget.cpp"
22
24
25QgsProcessingFeatureSourceOptionsWidget::QgsProcessingFeatureSourceOptionsWidget( QWidget *parent )
26 : QgsPanelWidget( parent )
27{
28 setupUi( this );
29
30 mFeatureLimitSpinBox->setClearValue( 0, tr( "Not set" ) );
31 mFeatureLimitSpinBox->clear();
32
33 mComboInvalidFeatureFiltering->addItem( tr( "Use Default" ) );
34 mComboInvalidFeatureFiltering->addItem( tr( "Do not Filter (Better Performance)" ), QVariant::fromValue( Qgis::InvalidGeometryCheck::NoCheck ) );
35 mComboInvalidFeatureFiltering->addItem( tr( "Skip (Ignore) Features with Invalid Geometries" ), QVariant::fromValue( Qgis::InvalidGeometryCheck::SkipInvalid ) );
36 mComboInvalidFeatureFiltering->addItem( tr( "Stop Algorithm Execution When a Geometry is Invalid" ), QVariant::fromValue( Qgis::InvalidGeometryCheck::AbortOnInvalid ) );
37
38 connect( mFeatureLimitSpinBox, qOverload<int>( &QSpinBox::valueChanged ), this, &QgsPanelWidget::widgetChanged );
39 connect( mComboInvalidFeatureFiltering, qOverload<int>( &QComboBox::currentIndexChanged ), this, &QgsPanelWidget::widgetChanged );
40 connect( mFilterExpressionWidget, &QgsExpressionLineEdit::expressionChanged, this, &QgsPanelWidget::widgetChanged );
41}
42
43void QgsProcessingFeatureSourceOptionsWidget::setLayer( QgsVectorLayer *layer )
44{
45 mFilterExpressionWidget->setLayer( layer );
46}
47
48void QgsProcessingFeatureSourceOptionsWidget::setGeometryCheckMethod( bool isOverridden, Qgis::InvalidGeometryCheck check )
49{
50 if ( !isOverridden )
51 mComboInvalidFeatureFiltering->setCurrentIndex( mComboInvalidFeatureFiltering->findData( QVariant() ) );
52 else
53 mComboInvalidFeatureFiltering->setCurrentIndex( mComboInvalidFeatureFiltering->findData( QVariant::fromValue( check ) ) );
54}
55
56void QgsProcessingFeatureSourceOptionsWidget::setFeatureLimit( int limit )
57{
58 mFeatureLimitSpinBox->setValue( limit );
59}
60
61void QgsProcessingFeatureSourceOptionsWidget::setFilterExpression( const QString &expression )
62{
63 mFilterExpressionWidget->setExpression( expression );
64}
65
66Qgis::InvalidGeometryCheck QgsProcessingFeatureSourceOptionsWidget::geometryCheckMethod() const
67{
68 return mComboInvalidFeatureFiltering->currentData().isValid() ? mComboInvalidFeatureFiltering->currentData().value<Qgis::InvalidGeometryCheck>() : Qgis::InvalidGeometryCheck::AbortOnInvalid;
69}
70
71bool QgsProcessingFeatureSourceOptionsWidget::isOverridingInvalidGeometryCheck() const
72{
73 return mComboInvalidFeatureFiltering->currentData().isValid();
74}
75
76int QgsProcessingFeatureSourceOptionsWidget::featureLimit() const
77{
78 return mFeatureLimitSpinBox->value() > 0 ? mFeatureLimitSpinBox->value() : -1;
79}
80
81QString QgsProcessingFeatureSourceOptionsWidget::filterExpression() const
82{
83 return mFilterExpressionWidget->expression();
84}
85
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
InvalidGeometryCheck
Methods for handling of features with invalid geometries.
Definition qgis.h:2238
@ NoCheck
No invalid geometry checking.
Definition qgis.h:2239
@ AbortOnInvalid
Close iterator on encountering any features with invalid geometry. This requires a slow geometry vali...
Definition qgis.h:2241
@ SkipInvalid
Skip any features with invalid geometry. This requires a slow geometry validity check for every featu...
Definition qgis.h:2240
void expressionChanged(const QString &expression)
Emitted when the expression is changed.
Base class for any widget that can be shown as an inline panel.
void widgetChanged()
Emitted when the widget state changes.
Represents a vector layer which manages a vector based dataset.