33 QgsAnnotationPolygonItemWidget::QgsAnnotationPolygonItemWidget( QWidget *parent )
 
   39   mSelector->setDockMode( 
dockMode() );
 
   42     if ( !mBlockChangedSignal )
 
   50   QVBoxLayout *layout = 
new QVBoxLayout();
 
   51   layout->setContentsMargins( 0, 0, 0, 0 );
 
   52   layout->addWidget( mSelector );
 
   53   mSymbolSelectorFrame->setLayout( layout );
 
   57     if ( !mBlockChangedSignal )
 
   66   mPropertiesWidget->updateItem( newItem );
 
   74     polygonItem->
setSymbol( mSymbol->clone() );
 
   75     mPropertiesWidget->updateItem( polygonItem );
 
   79 void QgsAnnotationPolygonItemWidget::setDockMode( 
bool dockMode )
 
   83     mSelector->setDockMode( dockMode );
 
   90     mSelector->setContext( context );
 
   91   mPropertiesWidget->setContext( context );
 
   94 QgsAnnotationPolygonItemWidget::~QgsAnnotationPolygonItemWidget() = 
default;
 
  102   mItem.reset( polygonItem->
clone() );
 
  103   if ( mItem->symbol() )
 
  105     mSymbol.reset( mItem->symbol()->clone() );
 
  111   mBlockChangedSignal = 
true;
 
  112   mSelector->loadSymbol( mSymbol.get() );
 
  113   mSelector->updatePreview();
 
  114   mPropertiesWidget->setItem( mItem.get() );
 
  115   mBlockChangedSignal = 
false;
 
  125 QgsAnnotationLineItemWidget::QgsAnnotationLineItemWidget( QWidget *parent )
 
  131   mSelector->setDockMode( 
dockMode() );
 
  134     if ( !mBlockChangedSignal )
 
  142   QVBoxLayout *layout = 
new QVBoxLayout();
 
  143   layout->setContentsMargins( 0, 0, 0, 0 );
 
  144   layout->addWidget( mSelector );
 
  145   mSymbolSelectorFrame->setLayout( layout );
 
  149     if ( !mBlockChangedSignal )
 
  158   mPropertiesWidget->updateItem( newItem );
 
  167     mPropertiesWidget->updateItem( lineItem );
 
  171 void QgsAnnotationLineItemWidget::setDockMode( 
bool dockMode )
 
  175     mSelector->setDockMode( dockMode );
 
  182     mSelector->setContext( context );
 
  183   mPropertiesWidget->setContext( context );
 
  186 QgsAnnotationLineItemWidget::~QgsAnnotationLineItemWidget() = 
default;
 
  194   mItem.reset( lineItem->
clone() );
 
  195   if ( mItem->symbol() )
 
  197     mSymbol.reset( mItem->symbol()->clone() );
 
  203   mBlockChangedSignal = 
true;
 
  204   mSelector->loadSymbol( mSymbol.get() );
 
  205   mSelector->updatePreview();
 
  206   mPropertiesWidget->setItem( mItem.get() );
 
  207   mBlockChangedSignal = 
false;
 
  217 QgsAnnotationMarkerItemWidget::QgsAnnotationMarkerItemWidget( QWidget *parent )
 
  223   mSelector->setDockMode( 
dockMode() );
 
  226     if ( !mBlockChangedSignal )
 
  234   QVBoxLayout *layout = 
new QVBoxLayout();
 
  235   layout->setContentsMargins( 0, 0, 0, 0 );
 
  236   layout->addWidget( mSelector );
 
  237   mSymbolSelectorFrame->setLayout( layout );
 
  241     if ( !mBlockChangedSignal )
 
  250   mPropertiesWidget->updateItem( newItem );
 
  258     markerItem->
setSymbol( mSymbol->clone() );
 
  259     mPropertiesWidget->updateItem( markerItem );
 
  263 void QgsAnnotationMarkerItemWidget::setDockMode( 
bool dockMode )
 
  267     mSelector->setDockMode( dockMode );
 
  274     mSelector->setContext( context );
 
  275   mPropertiesWidget->setContext( context );
 
  278 QgsAnnotationMarkerItemWidget::~QgsAnnotationMarkerItemWidget() = 
default;
 
  286   mItem.reset( markerItem->
clone() );
 
  287   if ( mItem->symbol() )
 
  289     mSymbol.reset( mItem->symbol()->clone() );
 
  295   mBlockChangedSignal = 
true;
 
  296   mSelector->loadSymbol( mSymbol.get() );
 
  297   mSelector->updatePreview();
 
  298   mPropertiesWidget->setItem( mItem.get() );
 
  299   mBlockChangedSignal = 
false;
 
  310 QgsAnnotationPointTextItemWidget::QgsAnnotationPointTextItemWidget( QWidget *parent )
 
  316   QVBoxLayout *vLayout = 
new QVBoxLayout();
 
  317   vLayout->setContentsMargins( 0, 0, 0, 0 );
 
  318   vLayout->addWidget( mTextFormatWidget );
 
  319   mTextFormatWidgetContainer->setLayout( vLayout );
 
  321   mTextEdit->setMaximumHeight( mTextEdit->fontMetrics().height() * 10 );
 
  323   mTextFormatWidget->setDockMode( 
dockMode() );
 
  326     if ( !mBlockChangedSignal )
 
  329   connect( mTextEdit, &QPlainTextEdit::textChanged, 
this, [ = ]
 
  331     if ( !mBlockChangedSignal )
 
  334   connect( mInsertExpressionButton, &QPushButton::clicked, 
this, &QgsAnnotationPointTextItemWidget::mInsertExpressionButton_clicked );
 
  337     if ( !mBlockChangedSignal )
 
  345   newItem->
setFormat( mTextFormatWidget->format() );
 
  346   newItem->
setText( mTextEdit->toPlainText() );
 
  347   mPropertiesWidget->updateItem( newItem );
 
  355     pointTextItem->
setFormat( mTextFormatWidget->format() );
 
  356     pointTextItem->setText( mTextEdit->toPlainText() );
 
  357     mPropertiesWidget->updateItem( pointTextItem );
 
  361 void QgsAnnotationPointTextItemWidget::setDockMode( 
bool dockMode )
 
  364   if ( mTextFormatWidget )
 
  365     mTextFormatWidget->setDockMode( dockMode );
 
  371   if ( mTextFormatWidget )
 
  372     mTextFormatWidget->setContext( context );
 
  373   mPropertiesWidget->setContext( context );
 
  376 void QgsAnnotationPointTextItemWidget::focusDefaultWidget()
 
  378   mTextEdit->selectAll();
 
  379   mTextEdit->setFocus();
 
  382 QgsAnnotationPointTextItemWidget::~QgsAnnotationPointTextItemWidget() = 
default;
 
  390   mItem.reset( textItem->
clone() );
 
  392   mBlockChangedSignal = 
true;
 
  393   mTextFormatWidget->
setFormat( mItem->format() );
 
  394   mTextEdit->setPlainText( mItem->text() );
 
  395   mPropertiesWidget->setItem( mItem.get() );
 
  396   mBlockChangedSignal = 
false;
 
  401 void QgsAnnotationPointTextItemWidget::mInsertExpressionButton_clicked()
 
  403   QString selText = mTextEdit->textCursor().selectedText();
 
  406   selText = selText.replace( QChar( 0x2029 ), QChar( 
'\n' ) );
 
  409   if ( selText.startsWith( QLatin1String( 
"[%" ) ) && selText.endsWith( QLatin1String( 
"%]" ) ) )
 
  410     selText = selText.mid( 2, selText.size() - 4 );
 
  413   if ( context().expressionContext() )
 
  420   exprDlg.setWindowTitle( tr( 
"Insert Expression" ) );
 
  421   if ( exprDlg.exec() == QDialog::Accepted )
 
  423     QString expression = exprDlg.expressionText();
 
  424     if ( !expression.isEmpty() )
 
  426       mTextEdit->insertPlainText( 
"[%" + expression + 
"%]" );