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 +
"%]" );