40 QGridLayout *layout = new QGridLayout( this );
41 QLabel *label = new QLabel(
43 "The 2.5D renderer only can be used with polygon layers. \n"
44 "'%1' is not a polygon layer and cannot be rendered in 2.5D."
46 .arg( layer->name() ),
49 layout->addWidget( label );
54 this->layout()->setContentsMargins( 0, 0, 0, 0 );
56 mAngleWidget->setClearValue( 0 );
57 mWallColorButton->setColorDialogTitle( tr(
"Select Wall Color" ) );
58 mWallColorButton->setAllowOpacity(
true );
59 mWallColorButton->setContext( u
"symbology"_s );
60 mRoofColorButton->setColorDialogTitle( tr(
"Select Roof Color" ) );
61 mRoofColorButton->setAllowOpacity(
true );
62 mRoofColorButton->setContext( u
"symbology"_s );
63 mShadowColorButton->setColorDialogTitle( tr(
"Select Shadow Color" ) );
64 mShadowColorButton->setAllowOpacity(
true );
65 mShadowColorButton->setContext( u
"symbology"_s );
72 mHeightWidget->setLayer( layer );
75 const QVariant height = scope->variable( u
"qgis_25d_height"_s );
76 const QVariant angle = scope->variable( u
"qgis_25d_angle"_s );
80 mAngleWidget->setClearValue( 70 );
81 mWallColorButton->setColor( mRenderer->wallColor() );
82 mRoofColorButton->setColor( mRenderer->roofColor() );
83 mShadowColorButton->setColor( mRenderer->shadowColor() );
84 mShadowEnabledWidget->setChecked( mRenderer->shadowEnabled() );
85 mShadowSizeWidget->setValue( mRenderer->shadowSpread() );
86 mShadowSizeWidget->setClearValue( 4 );
87 mWallExpositionShading->setChecked( mRenderer->wallShadingEnabled() );
89 connect( mAngleWidget,
static_cast<void ( QSpinBox::* )(
int )
>( &QSpinBox::valueChanged ),
this, &Qgs25DRendererWidget::updateRenderer );
94 connect( mShadowEnabledWidget, &QGroupBox::toggled,
this, &Qgs25DRendererWidget::updateRenderer );
95 connect( mShadowSizeWidget,
static_cast<void ( QDoubleSpinBox::* )(
double )
>( &QDoubleSpinBox::valueChanged ),
this, &Qgs25DRendererWidget::updateRenderer );
96 connect( mWallExpositionShading, &QAbstractButton::toggled,
this, &Qgs25DRendererWidget::updateRenderer );
static void setLayerVariable(QgsMapLayer *layer, const QString &name, const QVariant &value)
Sets a layer context variable.
static std::unique_ptr< QgsExpressionContextScope > layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.