19#include "moc_qgslayoutshapewidget.cpp" 
   35  connect( mShapeComboBox, &QComboBox::currentTextChanged, 
this, &QgsLayoutShapeWidget::mShapeComboBox_currentIndexChanged );
 
   36  connect( mCornerRadiusSpinBox, 
static_cast<void ( QDoubleSpinBox::* )( 
double )
>( &QDoubleSpinBox::valueChanged ), 
this, &QgsLayoutShapeWidget::mCornerRadiusSpinBox_valueChanged );
 
   44  mainLayout->addWidget( mItemPropertiesWidget );
 
   46  blockAllSignals( 
true );
 
   54  mRadiusUnitsComboBox->linkToWidget( mCornerRadiusSpinBox );
 
   55  mRadiusUnitsComboBox->setConverter( &mShape->layout()->renderContext().measurementConverter() );
 
   57  setGuiElementValues();
 
   59  blockAllSignals( 
false );
 
   62  mShapeStyleButton->registerExpressionContextGenerator( mShape );
 
   68  if ( mShape->layout() )
 
 
   76  if ( mItemPropertiesWidget )
 
 
   90  mShape = qobject_cast<QgsLayoutItemShape *>( item );
 
   91  mItemPropertiesWidget->
setItem( mShape );
 
   96    mShapeStyleButton->registerExpressionContextGenerator( mShape );
 
   99  setGuiElementValues();
 
 
  104void QgsLayoutShapeWidget::blockAllSignals( 
bool block )
 
  106  mShapeComboBox->blockSignals( block );
 
  107  mCornerRadiusSpinBox->blockSignals( block );
 
  108  mRadiusUnitsComboBox->blockSignals( block );
 
  109  mShapeStyleButton->blockSignals( block );
 
  112void QgsLayoutShapeWidget::setGuiElementValues()
 
  119  blockAllSignals( 
true );
 
  121  mShapeStyleButton->setSymbol( mShape->symbol()->clone() );
 
  123  mCornerRadiusSpinBox->setValue( mShape->cornerRadius().length() );
 
  124  mRadiusUnitsComboBox->setUnit( mShape->cornerRadius().units() );
 
  126  mShapeComboBox->setCurrentIndex( mShapeComboBox->findData( mShape->shapeType() ) );
 
  127  toggleRadiusSpin( mShape->shapeType() );
 
  129  blockAllSignals( 
false );
 
  132void QgsLayoutShapeWidget::symbolChanged()
 
  138  mShape->setSymbol( mShapeStyleButton->clonedSymbol<
QgsFillSymbol>() );
 
  139  mShape->layout()->undoStack()->endCommand();
 
  142void QgsLayoutShapeWidget::mCornerRadiusSpinBox_valueChanged( 
double val )
 
  149  mShape->layout()->undoStack()->endCommand();
 
  153void QgsLayoutShapeWidget::radiusUnitsChanged()
 
  159  mShape->setCornerRadius( 
QgsLayoutMeasurement( mCornerRadiusSpinBox->value(), mRadiusUnitsComboBox->unit() ) );
 
  160  mShape->layout()->undoStack()->endCommand();
 
  164void QgsLayoutShapeWidget::mShapeComboBox_currentIndexChanged( 
const QString & )
 
  171  mShape->layout()->undoStack()->beginCommand( mShape, tr( 
"Change Shape Type" ) );
 
  173  mShape->setShapeType( shape );
 
  174  toggleRadiusSpin( shape );
 
  176  mShape->layout()->undoStack()->endCommand();
 
  186      mCornerRadiusSpinBox->setEnabled( 
false );
 
  191      mCornerRadiusSpinBox->setEnabled( 
true );
 
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
 
Layout item for basic filled shapes (e.g.
 
@ Rectangle
Rectangle shape.
 
@ Triangle
Triangle shape.
 
Base class for graphical items within a QgsLayout.
 
@ UndoShapeCornerRadius
Shape corner radius.
 
@ UndoShapeStyle
Shape symbol style.
 
int type() const override
Returns a unique graphics item type identifier.
 
Provides a method of storing measurements for use in QGIS layouts using a variety of different measur...
 
void changed()
Emitted when the object's properties change.
 
void layerChanged(QgsVectorLayer *layer)
Emitted when the context's layer is changed.
 
void unitChanged(Qgis::LayoutUnit unit)
Emitted when the unit is changed.
 
Interface for master layout type objects, such as print layouts and reports.