26  QVector<QgsDoubleSpinBox *> widgets;
 
   27  widgets << mMinMagSpinBox << mMaxMagSpinBox
 
   28          << mHeadWidthSpinBox << mHeadLengthSpinBox
 
   29          << mMinimumShaftSpinBox << mMaximumShaftSpinBox
 
   30          << mScaleShaftByFactorOfSpinBox << mShaftLengthSpinBox;
 
   33  for ( 
const auto &widget : std::as_const( widgets ) )
 
   35    widget->setClearValueMode( QgsDoubleSpinBox::ClearValueMode::MinimumValue );
 
   36    widget->setSpecialValueText( QString( ) );
 
   37    widget->setValue( widget->minimum() );
 
   40  mShaftLengthComboBox->setCurrentIndex( -1 );
 
   45  mXSpacingSpinBox->setClearValue( 10.0 );
 
   46  mYSpacingSpinBox->setClearValue( 10.0 );
 
   47  mStreamlinesDensitySpinBox->setClearValue( 15.0 );
 
   48  mTracesParticlesCountSpinBox->setClearValue( 1000 );
 
   49  mTracesMaxLengthSpinBox->setClearValue( 100.0 );
 
   52  connect( mColoringMethodComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   53           this, &QgsMeshRendererVectorSettingsWidget::onColoringMethodChanged );
 
   56  connect( mColorRampShaderMinimumSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ),
 
   57           this, &QgsMeshRendererVectorSettingsWidget::onColorRampMinMaxChanged );
 
   58  connect( mColorRampShaderMaximumSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ),
 
   59           this, &QgsMeshRendererVectorSettingsWidget::onColorRampMinMaxChanged );
 
   61  connect( mLineWidthSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ),
 
   64  connect( mShaftLengthComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   67  connect( mShaftLengthComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   68           mShaftOptionsStackedWidget, &QStackedWidget::setCurrentIndex );
 
   72  connect( mColorRampShaderLoadButton, &QPushButton::clicked, 
this, &QgsMeshRendererVectorSettingsWidget::loadColorRampShader );
 
   74  onColoringMethodChanged();
 
   76  for ( 
const auto &widget : std::as_const( widgets ) )
 
   84  connect( mSymbologyVectorComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   85           this, &QgsMeshRendererVectorSettingsWidget::onSymbologyChanged );
 
   86  onSymbologyChanged( 0 );
 
   88  connect( mSymbologyVectorComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   91  connect( mStreamlinesSeedingMethodComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   92           this, &QgsMeshRendererVectorSettingsWidget::onStreamLineSeedingMethodChanged );
 
   93  onStreamLineSeedingMethodChanged( 0 );
 
   95  connect( mStreamlinesSeedingMethodComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
 
   98  connect( mStreamlinesDensitySpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ),
 
  101  connect( mTracesMaxLengthSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ),
 
  104  connect( mTracesParticlesCountSpinBox, qOverload<int>( &QgsSpinBox::valueChanged ),
 
  107  mTracesTailLengthMapUnitWidget->setUnits(
 
  109    Qgis::RenderUnit::Millimeters,
 
  110    Qgis::RenderUnit::MetersInMapUnits,
 
  111    Qgis::RenderUnit::Pixels,
 
  112    Qgis::RenderUnit::Points
 
  137                              ( mColoringMethodComboBox->currentData().toInt() ) );
 
  141  double val = filterValue( mMinMagSpinBox, -1 );
 
  144  val = filterValue( mMaxMagSpinBox, -1 );
 
  155  bool enabled = mDisplayVectorsOnGridGroupBox->isChecked();
 
  164  val = filterValue( mMinimumShaftSpinBox, arrowSettings.
minShaftLength() );
 
  167  val = filterValue( mMaximumShaftSpinBox, arrowSettings.
maxShaftLength() );
 
  170  val = filterValue( mScaleShaftByFactorOfSpinBox, arrowSettings.
scaleFactor() );
 
  183  streamlineSettings.
setSeedingDensity( mStreamlinesDensitySpinBox->value() / 100 );
 
  202  if ( mActiveDatasetGroup < 0 )
 
  211  symbologyLabel->setVisible( hasFaces );
 
  212  mSymbologyVectorComboBox->setVisible( hasFaces );
 
  213  mSymbologyVectorComboBox->setCurrentIndex( hasFaces ? 
settings.
symbology() : 0 );
 
  221  mColoringMethodComboBox->setCurrentIndex( mColoringMethodComboBox->findData( 
settings.
coloringMethod() ) );
 
  241  mDisplayVectorsOnGridGroupBox->setVisible( hasFaces );
 
  251  mScaleShaftByFactorOfSpinBox->setValue( arrowSettings.
scaleFactor() );
 
  257  mStreamlinesSeedingMethodComboBox->setCurrentIndex( streamlinesSettings.
seedingMethod() );
 
  258  mStreamlinesDensitySpinBox->setValue( streamlinesSettings.
seedingDensity() * 100 );
 
  265  mTracesParticlesCountSpinBox->setValue( tracesSettings.
particlesCount() );
 
  269void QgsMeshRendererVectorSettingsWidget::onSymbologyChanged( 
int currentIndex )
 
  283  mDisplayVectorsOnGridGroupBox->setEnabled(
 
  289void QgsMeshRendererVectorSettingsWidget::onStreamLineSeedingMethodChanged( 
int currentIndex )
 
  292  mStreamlinesDensityLabel->setEnabled( enabled );
 
  293  mStreamlinesDensitySpinBox->setEnabled( enabled );
 
  295  mDisplayVectorsOnGridGroupBox->setEnabled( !enabled );
 
  298void QgsMeshRendererVectorSettingsWidget::onColoringMethodChanged()
 
  304  if ( mColorRampShaderWidget->shader().colorRampItemList().isEmpty() )
 
  305    loadColorRampShader();
 
  310void QgsMeshRendererVectorSettingsWidget::onColorRampMinMaxChanged()
 
  312  mColorRampShaderWidget->setMinimumMaximumAndClassify(
 
  313    filterValue( mColorRampShaderMinimumSpinBox, 0 ),
 
  314    filterValue( mColorRampShaderMaximumSpinBox, 0 ) );
 
  317void QgsMeshRendererVectorSettingsWidget::loadColorRampShader()
 
  323  if ( currentVectorDataSetGroupIndex < 0 ||
 
  331  mColorRampShaderWidget->setMinimumMaximumAndClassify( min, max );
 
  332  whileBlocking( mColorRampShaderMinimumSpinBox )->setValue( min );
 
  333  whileBlocking( mColorRampShaderMaximumSpinBox )->setValue( max );
 
  336double QgsMeshRendererVectorSettingsWidget::filterValue( 
const QgsDoubleSpinBox *spinBox, 
double errVal )
 const 
  338  if ( spinBox->value() == spinBox->
clearValue() )
 
  341  return spinBox->value();
 
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
 
ColoringMethod
Defines how the color is defined.
 
@ ColorRamp
Render with a color ramp.
 
@ SingleColor
Render with a single color.
 
bool contains(const QgsMesh::ElementType &type) const
Returns whether the mesh contains at mesh elements of given type.
 
Represents a mesh layer supporting display of data on structured or unstructured meshes.
 
QgsMeshRendererSettings rendererSettings() const
Returns renderer settings.
 
QgsMeshDataProvider * dataProvider() override
Returns the layer's data provider, it may be nullptr.
 
QgsMeshDatasetGroupMetadata datasetGroupMetadata(const QgsMeshDatasetIndex &index) const
Returns the dataset groups metadata.
 
Represents all mesh renderer settings.
 
int activeVectorDatasetGroup() const
Returns the active vector dataset group.
 
QgsMeshRendererVectorSettings vectorSettings(int groupIndex) const
Returns renderer settings.
 
Represents a mesh renderer settings for vector datasets displayed with arrows.
 
void setFixedShaftLength(double fixedShaftLength)
Sets fixed length (in millimeters)
 
void setMaxShaftLength(double maxShaftLength)
Sets maximum shaft length (in millimeters)
 
QgsMeshRendererVectorArrowSettings::ArrowScalingMethod shaftLengthMethod() const
Returns method used for drawing arrows.
 
void setMinShaftLength(double minShaftLength)
Sets mininimum shaft length (in millimeters)
 
double fixedShaftLength() const
Returns fixed arrow length (in millimeters)
 
void setArrowHeadWidthRatio(double arrowHeadWidthRatio)
Sets ratio of the head width of the arrow (range 0-1)
 
double scaleFactor() const
Returns scale factor.
 
double maxShaftLength() const
Returns maximum shaft length (in millimeters)
 
double arrowHeadWidthRatio() const
Returns ratio of the head width of the arrow (range 0-1)
 
void setArrowHeadLengthRatio(double arrowHeadLengthRatio)
Sets ratio of the head length of the arrow (range 0-1)
 
void setScaleFactor(double scaleFactor)
Sets scale factor.
 
void setShaftLengthMethod(ArrowScalingMethod shaftLengthMethod)
Sets method used for drawing arrows.
 
ArrowScalingMethod
Algorithm how to transform vector magnitude to length of arrow on the device in pixels.
 
double minShaftLength() const
Returns mininimum shaft length (in millimeters)
 
double arrowHeadLengthRatio() const
Returns ratio of the head length of the arrow (range 0-1)
 
Represents a renderer settings for vector datasets.
 
void setColorRampShader(const QgsColorRampShader &colorRampShader)
Returns the color ramp shader used to render vector datasets.
 
void setStreamLinesSettings(const QgsMeshRendererVectorStreamlineSettings &streamLinesSettings)
Sets settings for vector rendered with streamlines.
 
int userGridCellWidth() const
Returns width in pixels of user grid cell.
 
void setArrowsSettings(const QgsMeshRendererVectorArrowSettings &arrowSettings)
Sets settings for vector rendered with arrows.
 
void setUserGridCellWidth(int width)
Sets width of user grid cell (in pixels)
 
void setColor(const QColor &color)
Sets color used for drawing arrows.
 
QgsMeshRendererVectorTracesSettings tracesSettings() const
Returns settings for vector rendered with traces.
 
QColor color() const
Returns color used for drawing arrows.
 
int userGridCellHeight() const
Returns height in pixels of user grid cell.
 
void setOnUserDefinedGrid(bool enabled)
Toggles drawing of vectors on user defined grid.
 
double lineWidth() const
Returns line width of the arrow (in millimeters)
 
Symbology
Defines the symbology of vector rendering.
 
@ Traces
Displaying vector dataset with particle traces.
 
@ Arrows
Displaying vector dataset with arrows.
 
@ Streamlines
Displaying vector dataset with streamlines.
 
void setUserGridCellHeight(int height)
Sets height of user grid cell (in pixels)
 
Symbology symbology() const
Returns the displaying method used to render vector datasets.
 
double filterMax() const
Returns filter value for vector magnitudes.
 
QgsColorRampShader colorRampShader() const
Sets the color ramp shader used to render vector datasets.
 
void setSymbology(const Symbology &symbology)
Sets the displaying method used to render vector datasets.
 
void setFilterMin(double filterMin)
Sets filter value for vector magnitudes.
 
QgsMeshRendererVectorArrowSettings arrowSettings() const
Returns settings for vector rendered with arrows.
 
void setFilterMax(double filterMax)
Sets filter value for vector magnitudes.
 
void setTracesSettings(const QgsMeshRendererVectorTracesSettings &tracesSettings)
Sets settings for vector rendered with traces.
 
void setColoringMethod(const QgsInterpolatedLineColor::ColoringMethod &coloringMethod)
Sets the coloring method used to render vector datasets.
 
QgsInterpolatedLineColor::ColoringMethod coloringMethod() const
Returns the coloring method used to render vector datasets.
 
void setLineWidth(double lineWidth)
Sets line width of the arrow in pixels (in millimeters)
 
bool isOnUserDefinedGrid() const
Returns whether vectors are drawn on user-defined grid.
 
double filterMin() const
Returns filter value for vector magnitudes.
 
QgsMeshRendererVectorStreamlineSettings streamLinesSettings() const
Returns settings for vector rendered with streamlines.
 
Represents a streamline renderer settings for vector datasets displayed by streamlines.
 
void setSeedingDensity(double seedingDensity)
Sets the density used for seeding start points.
 
SeedingStartPointsMethod seedingMethod() const
Returns the method used for seeding start points of strealines.
 
void setSeedingMethod(const SeedingStartPointsMethod &seedingMethod)
Sets the method used for seeding start points of strealines.
 
SeedingStartPointsMethod
Method used to define start points that are used to draw streamlines.
 
@ Random
Seeds start points randomly on the mesh.
 
@ MeshGridded
Seeds start points on the vertices mesh or user regular grid.
 
double seedingDensity() const
Returns the density used for seeding start points.
 
Represents a trace renderer settings for vector datasets displayed by particle traces.
 
Qgis::RenderUnit maximumTailLengthUnit() const
Returns the maximum tail length unit.
 
void setMaximumTailLength(double maximumTailLength)
Sets the maximums tail length.
 
void setMaximumTailLengthUnit(Qgis::RenderUnit maximumTailLengthUnit)
Sets the maximum tail length unit.
 
double maximumTailLength() const
Returns the maximum tail length.
 
int particlesCount() const
Returns particles count.
 
void setParticlesCount(int value)
Sets particles count.
 
double maximumValue() const
Returns the minimum value for the raster shader.
 
double minimumValue() const
Returns the maximum value for the raster shader.
 
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.