18#ifndef QGSPROPERTYASSISTANTWIDGET_H
19#define QGSPROPERTYASSISTANTWIDGET_H
21#include "ui_qgspropertyassistantwidgetbase.h"
22#include "ui_qgspropertycolorassistantwidget.h"
23#include "ui_qgspropertygenericnumericassistantwidget.h"
24#include "ui_qgspropertysizeassistantwidget.h"
33#include <QItemDelegate>
34#include <QStandardItemModel>
42class GUI_EXPORT QgsPropertyAbstractTransformerWidget :
public QWidget
47 QgsPropertyAbstractTransformerWidget( QWidget *parent =
nullptr,
const QgsPropertyDefinition &definition = QgsPropertyDefinition() )
49 , mDefinition( definition )
52 virtual QgsPropertyTransformer *createTransformer(
double minValue,
double maxValue )
const = 0;
54 virtual QList<QgsSymbolLegendNode *> generatePreviews(
const QList<double> &breaks, QgsLayerTreeLayer *parent,
const QgsSymbol *symbol,
double minValue,
double maxValue, QgsCurveTransform *curve )
const;
61 QgsPropertyDefinition mDefinition;
64class GUI_EXPORT QgsPropertyGenericNumericAssistantWidget :
public QgsPropertyAbstractTransformerWidget,
private Ui::PropertyGenericNumericAssistant
69 QgsPropertyGenericNumericAssistantWidget( QWidget *parent =
nullptr,
const QgsPropertyDefinition &definition = QgsPropertyDefinition(),
const QgsProperty &initialState = QgsProperty() );
71 QgsGenericNumericTransformer *createTransformer(
double minValue,
double maxValue )
const override;
74class GUI_EXPORT QgsPropertySizeAssistantWidget :
public QgsPropertyAbstractTransformerWidget,
private Ui::PropertySizeAssistant
79 QgsPropertySizeAssistantWidget( QWidget *parent =
nullptr,
const QgsPropertyDefinition &definition = QgsPropertyDefinition(),
const QgsProperty &initialState = QgsProperty() );
81 QgsSizeScaleTransformer *createTransformer(
double minValue,
double maxValue )
const override;
83 QList<QgsSymbolLegendNode *> generatePreviews(
const QList<double> &breaks, QgsLayerTreeLayer *parent,
const QgsSymbol *symbol,
double minValue,
double maxValue, QgsCurveTransform *curve )
const override;
86class GUI_EXPORT QgsPropertyColorAssistantWidget :
public QgsPropertyAbstractTransformerWidget,
private Ui::PropertyColorAssistant
91 QgsPropertyColorAssistantWidget( QWidget *parent =
nullptr,
const QgsPropertyDefinition &definition = QgsPropertyDefinition(),
const QgsProperty &initialState = QgsProperty() );
93 QgsColorRampTransformer *createTransformer(
double minValue,
double maxValue )
const override;
95 QList<QgsSymbolLegendNode *> generatePreviews(
const QList<double> &breaks, QgsLayerTreeLayer *parent,
const QgsSymbol *symbol,
double minValue,
double maxValue, QgsCurveTransform *curve )
const override;
141 mSymbol = std::move( symbol );
145 void setDockMode(
bool dockMode )
override;
148 void computeValuesFromLayer();
149 void updatePreview();
155 QgsPropertyAbstractTransformerWidget *mTransformerWidget =
nullptr;
159 QStandardItemModel mPreviewList;
161 std::shared_ptr<QgsSymbol> mSymbol;
163 bool computeValuesFromExpression(
const QString &expression,
double &minValue,
double &maxValue )
const;
164 bool computeValuesFromField(
const QString &fieldName,
double &minValue,
double &maxValue )
const;
170class QgsAssistantPreviewItemDelegate :
public QItemDelegate
175 explicit QgsAssistantPreviewItemDelegate( QStandardItemModel *model )
178 QSize sizeHint(
const QStyleOptionViewItem & ,
const QModelIndex &index )
const override
180 QSize size = mModel->item( index.row() )->icon().actualSize( QSize( 512, 512 ) );
186 QStandardItemModel *mModel =
nullptr;
Abstract interface for generating an expression context.
Layer tree group node serves as a container for layers and further groups.
Layer tree node points to a map layer.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition for a property.
A store for object properties.
Represents a vector layer which manages a vector based dataset.