mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-05 00:09:32 -04:00
Do not refresh stats when opening the stat summary field combo box
Without this change, stats are calculated when users simply open the combo box to select a new field. With large datasets, it freezes QGIS for a long time, and the combo box end up never opening.
This commit is contained in:
parent
7bf0a7f714
commit
3883547da4
@ -88,7 +88,7 @@ QgsStatisticalSummaryDockWidget::QgsStatisticalSummaryDockWidget( QWidget *paren
|
||||
mFieldExpressionWidget->setLayer( mLayerComboBox->layer( 0 ) );
|
||||
|
||||
connect( mLayerComboBox, &QgsMapLayerComboBox::layerChanged, this, &QgsStatisticalSummaryDockWidget::layerChanged );
|
||||
connect( mFieldExpressionWidget, static_cast<void ( QgsFieldExpressionWidget::* )( const QString & )>( &QgsFieldExpressionWidget::fieldChanged ), this, &QgsStatisticalSummaryDockWidget::refreshStatistics );
|
||||
connect( mFieldExpressionWidget, static_cast<void ( QgsFieldExpressionWidget::* )( const QString & )>( &QgsFieldExpressionWidget::fieldChanged ), this, &QgsStatisticalSummaryDockWidget::fieldChanged );
|
||||
connect( mSelectedOnlyCheckBox, &QAbstractButton::toggled, this, &QgsStatisticalSummaryDockWidget::refreshStatistics );
|
||||
connect( mButtonRefresh, &QAbstractButton::clicked, this, &QgsStatisticalSummaryDockWidget::refreshStatistics );
|
||||
connect( QgsProject::instance(), static_cast<void ( QgsProject::* )( const QStringList & )>( &QgsProject::layersWillBeRemoved ), this, &QgsStatisticalSummaryDockWidget::layersRemoved );
|
||||
@ -101,6 +101,15 @@ QgsStatisticalSummaryDockWidget::QgsStatisticalSummaryDockWidget( QWidget *paren
|
||||
refreshStatisticsMenu();
|
||||
}
|
||||
|
||||
void QgsStatisticalSummaryDockWidget::fieldChanged()
|
||||
{
|
||||
if ( mFieldExpressionWidget->expression() != mExpression )
|
||||
{
|
||||
mExpression = mFieldExpressionWidget->expression();
|
||||
refreshStatistics();
|
||||
}
|
||||
}
|
||||
|
||||
void QgsStatisticalSummaryDockWidget::refreshStatistics()
|
||||
{
|
||||
if ( !mLayer || ( mFieldExpressionWidget->isExpression() && !mFieldExpressionWidget->isValidExpression() ) )
|
||||
|
@ -58,6 +58,7 @@ class APP_EXPORT QgsStatisticalSummaryDockWidget : public QgsDockWidget, private
|
||||
private slots:
|
||||
|
||||
void layerChanged( QgsMapLayer *layer );
|
||||
void fieldChanged();
|
||||
void statActionTriggered( bool checked );
|
||||
void layersRemoved( const QStringList &layers );
|
||||
void layerSelectionChanged();
|
||||
@ -92,6 +93,8 @@ class APP_EXPORT QgsStatisticalSummaryDockWidget : public QgsDockWidget, private
|
||||
QMenu *mStatisticsMenu = nullptr;
|
||||
DataType mFieldType;
|
||||
DataType mPreviousFieldType;
|
||||
|
||||
QString mExpression;
|
||||
};
|
||||
|
||||
#endif // QGSSTATISTICALSUMMARYDOCKWIDGET_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user