@@ -74,7 +74,7 @@ void QgsComposerConfigObject::updateDataDefinedButtons()
7474 }
7575}
7676
77- void QgsComposerConfigObject::registerDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty key,
77+ void QgsComposerConfigObject::initializeDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty key,
7878 QgsDataDefinedButtonV2::DataType type, const QString& description )
7979{
8080 button->blockSignals ( true );
@@ -85,6 +85,18 @@ void QgsComposerConfigObject::registerDataDefinedButton( QgsDataDefinedButtonV2*
8585 button->blockSignals ( false );
8686}
8787
88+ void QgsComposerConfigObject::updateDataDefinedButton ( QgsDataDefinedButtonV2* button )
89+ {
90+ if ( !button )
91+ return ;
92+
93+ if ( !button->property ( " propertyKey" ).isValid () )
94+ return ;
95+
96+ QgsComposerObject::DataDefinedProperty key = static_cast < QgsComposerObject::DataDefinedProperty >( button->property ( " propertyKey" ).toInt () );
97+ whileBlocking ( button )->setToProperty ( mComposerObject ->dataDefinedProperties ().property ( key ) );
98+ }
99+
88100QgsAtlasComposition* QgsComposerConfigObject::atlasComposition () const
89101{
90102 if ( !mComposerObject )
@@ -152,6 +164,8 @@ QgsComposerItemWidget::QgsComposerItemWidget( QWidget* parent, QgsComposerItem*
152164 buttonGroup->addButton ( mLowerRightCheckBox );
153165 buttonGroup->setExclusive ( true );
154166
167+ initializeDataDefinedButtons ();
168+
155169 setValuesForGuiElements ();
156170 connect ( mItem ->composition (), SIGNAL ( paperSizeChanged () ), this , SLOT ( setValuesForGuiPositionElements () ) );
157171 connect ( mItem , SIGNAL ( sizeChanged () ), this , SLOT ( setValuesForGuiPositionElements () ) );
@@ -523,30 +537,38 @@ void QgsComposerItemWidget::setValuesForGuiNonPositionElements()
523537 mExcludeFromPrintsCheckBox ->blockSignals ( false );
524538}
525539
526- void QgsComposerItemWidget::populateDataDefinedButtons ()
540+ void QgsComposerItemWidget::initializeDataDefinedButtons ()
527541{
528- mConfigObject ->registerDataDefinedButton ( mXPositionDDBtn , QgsComposerObject::PositionX,
542+ mConfigObject ->initializeDataDefinedButton ( mXPositionDDBtn , QgsComposerObject::PositionX,
529543 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
530- mConfigObject ->registerDataDefinedButton ( mYPositionDDBtn , QgsComposerObject::PositionY,
544+ mConfigObject ->initializeDataDefinedButton ( mYPositionDDBtn , QgsComposerObject::PositionY,
531545 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
532- mConfigObject ->registerDataDefinedButton ( mWidthDDBtn , QgsComposerObject::ItemWidth,
546+ mConfigObject ->initializeDataDefinedButton ( mWidthDDBtn , QgsComposerObject::ItemWidth,
533547 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
534- mConfigObject ->registerDataDefinedButton ( mHeightDDBtn , QgsComposerObject::ItemHeight,
548+ mConfigObject ->initializeDataDefinedButton ( mHeightDDBtn , QgsComposerObject::ItemHeight,
535549 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
536- mConfigObject ->registerDataDefinedButton ( mItemRotationDDBtn , QgsComposerObject::ItemRotation,
550+ mConfigObject ->initializeDataDefinedButton ( mItemRotationDDBtn , QgsComposerObject::ItemRotation,
537551 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::double180RotDesc () );
538- mConfigObject ->registerDataDefinedButton ( mTransparencyDDBtn , QgsComposerObject::Transparency,
552+ mConfigObject ->initializeDataDefinedButton ( mTransparencyDDBtn , QgsComposerObject::Transparency,
539553 QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::intTranspDesc () );
540- mConfigObject ->registerDataDefinedButton ( mBlendModeDDBtn , QgsComposerObject::BlendMode,
554+ mConfigObject ->initializeDataDefinedButton ( mBlendModeDDBtn , QgsComposerObject::BlendMode,
541555 QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::blendModesDesc () );
542- mConfigObject ->registerDataDefinedButton ( mExcludePrintsDDBtn , QgsComposerObject::ExcludeFromExports,
556+ mConfigObject ->initializeDataDefinedButton ( mExcludePrintsDDBtn , QgsComposerObject::ExcludeFromExports,
543557 QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::boolDesc () );
544- mConfigObject ->registerDataDefinedButton ( mItemFrameColorDDBtn , QgsComposerObject::FrameColor,
558+ mConfigObject ->initializeDataDefinedButton ( mItemFrameColorDDBtn , QgsComposerObject::FrameColor,
545559 QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::colorAlphaDesc () );
546- mConfigObject ->registerDataDefinedButton ( mItemBackgroundColorDDBtn , QgsComposerObject::BackgroundColor,
560+ mConfigObject ->initializeDataDefinedButton ( mItemBackgroundColorDDBtn , QgsComposerObject::BackgroundColor,
547561 QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::colorAlphaDesc () );
548562}
549563
564+ void QgsComposerItemWidget::populateDataDefinedButtons ()
565+ {
566+ Q_FOREACH ( QgsDataDefinedButtonV2* button, findChildren< QgsDataDefinedButtonV2* >() )
567+ {
568+ mConfigObject ->updateDataDefinedButton ( button );
569+ }
570+ }
571+
550572void QgsComposerItemWidget::setValuesForGuiElements ()
551573{
552574 if ( !mItem )
@@ -773,7 +795,12 @@ QgsComposerItemBaseWidget::QgsComposerItemBaseWidget( QWidget* parent, QgsCompos
773795
774796void QgsComposerItemBaseWidget::registerDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty property, QgsDataDefinedButtonV2::DataType type, const QString& description )
775797{
776- mConfigObject ->registerDataDefinedButton ( button, property, type, description );
798+ mConfigObject ->initializeDataDefinedButton ( button, property, type, description );
799+ }
800+
801+ void QgsComposerItemBaseWidget::updateDataDefinedButton ( QgsDataDefinedButtonV2* button )
802+ {
803+ mConfigObject ->updateDataDefinedButton ( button );
777804}
778805
779806QgsVectorLayer* QgsComposerItemBaseWidget::atlasCoverageLayer () const
0 commit comments