@@ -74,7 +74,7 @@ void QgsComposerConfigObject::updateDataDefinedButtons()
74
74
}
75
75
}
76
76
77
- void QgsComposerConfigObject::registerDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty key,
77
+ void QgsComposerConfigObject::initializeDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty key,
78
78
QgsDataDefinedButtonV2::DataType type, const QString& description )
79
79
{
80
80
button->blockSignals ( true );
@@ -85,6 +85,18 @@ void QgsComposerConfigObject::registerDataDefinedButton( QgsDataDefinedButtonV2*
85
85
button->blockSignals ( false );
86
86
}
87
87
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
+
88
100
QgsAtlasComposition* QgsComposerConfigObject::atlasComposition () const
89
101
{
90
102
if ( !mComposerObject )
@@ -152,6 +164,8 @@ QgsComposerItemWidget::QgsComposerItemWidget( QWidget* parent, QgsComposerItem*
152
164
buttonGroup->addButton ( mLowerRightCheckBox );
153
165
buttonGroup->setExclusive ( true );
154
166
167
+ initializeDataDefinedButtons ();
168
+
155
169
setValuesForGuiElements ();
156
170
connect ( mItem ->composition (), SIGNAL ( paperSizeChanged () ), this , SLOT ( setValuesForGuiPositionElements () ) );
157
171
connect ( mItem , SIGNAL ( sizeChanged () ), this , SLOT ( setValuesForGuiPositionElements () ) );
@@ -523,30 +537,38 @@ void QgsComposerItemWidget::setValuesForGuiNonPositionElements()
523
537
mExcludeFromPrintsCheckBox ->blockSignals ( false );
524
538
}
525
539
526
- void QgsComposerItemWidget::populateDataDefinedButtons ()
540
+ void QgsComposerItemWidget::initializeDataDefinedButtons ()
527
541
{
528
- mConfigObject ->registerDataDefinedButton ( mXPositionDDBtn , QgsComposerObject::PositionX,
542
+ mConfigObject ->initializeDataDefinedButton ( mXPositionDDBtn , QgsComposerObject::PositionX,
529
543
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
530
- mConfigObject ->registerDataDefinedButton ( mYPositionDDBtn , QgsComposerObject::PositionY,
544
+ mConfigObject ->initializeDataDefinedButton ( mYPositionDDBtn , QgsComposerObject::PositionY,
531
545
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
532
- mConfigObject ->registerDataDefinedButton ( mWidthDDBtn , QgsComposerObject::ItemWidth,
546
+ mConfigObject ->initializeDataDefinedButton ( mWidthDDBtn , QgsComposerObject::ItemWidth,
533
547
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
534
- mConfigObject ->registerDataDefinedButton ( mHeightDDBtn , QgsComposerObject::ItemHeight,
548
+ mConfigObject ->initializeDataDefinedButton ( mHeightDDBtn , QgsComposerObject::ItemHeight,
535
549
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::doubleDesc () );
536
- mConfigObject ->registerDataDefinedButton ( mItemRotationDDBtn , QgsComposerObject::ItemRotation,
550
+ mConfigObject ->initializeDataDefinedButton ( mItemRotationDDBtn , QgsComposerObject::ItemRotation,
537
551
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::double180RotDesc () );
538
- mConfigObject ->registerDataDefinedButton ( mTransparencyDDBtn , QgsComposerObject::Transparency,
552
+ mConfigObject ->initializeDataDefinedButton ( mTransparencyDDBtn , QgsComposerObject::Transparency,
539
553
QgsDataDefinedButtonV2::AnyType, QgsDataDefinedButtonV2::intTranspDesc () );
540
- mConfigObject ->registerDataDefinedButton ( mBlendModeDDBtn , QgsComposerObject::BlendMode,
554
+ mConfigObject ->initializeDataDefinedButton ( mBlendModeDDBtn , QgsComposerObject::BlendMode,
541
555
QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::blendModesDesc () );
542
- mConfigObject ->registerDataDefinedButton ( mExcludePrintsDDBtn , QgsComposerObject::ExcludeFromExports,
556
+ mConfigObject ->initializeDataDefinedButton ( mExcludePrintsDDBtn , QgsComposerObject::ExcludeFromExports,
543
557
QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::boolDesc () );
544
- mConfigObject ->registerDataDefinedButton ( mItemFrameColorDDBtn , QgsComposerObject::FrameColor,
558
+ mConfigObject ->initializeDataDefinedButton ( mItemFrameColorDDBtn , QgsComposerObject::FrameColor,
545
559
QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::colorAlphaDesc () );
546
- mConfigObject ->registerDataDefinedButton ( mItemBackgroundColorDDBtn , QgsComposerObject::BackgroundColor,
560
+ mConfigObject ->initializeDataDefinedButton ( mItemBackgroundColorDDBtn , QgsComposerObject::BackgroundColor,
547
561
QgsDataDefinedButtonV2::String, QgsDataDefinedButtonV2::colorAlphaDesc () );
548
562
}
549
563
564
+ void QgsComposerItemWidget::populateDataDefinedButtons ()
565
+ {
566
+ Q_FOREACH ( QgsDataDefinedButtonV2* button, findChildren< QgsDataDefinedButtonV2* >() )
567
+ {
568
+ mConfigObject ->updateDataDefinedButton ( button );
569
+ }
570
+ }
571
+
550
572
void QgsComposerItemWidget::setValuesForGuiElements ()
551
573
{
552
574
if ( !mItem )
@@ -773,7 +795,12 @@ QgsComposerItemBaseWidget::QgsComposerItemBaseWidget( QWidget* parent, QgsCompos
773
795
774
796
void QgsComposerItemBaseWidget::registerDataDefinedButton ( QgsDataDefinedButtonV2* button, QgsComposerObject::DataDefinedProperty property, QgsDataDefinedButtonV2::DataType type, const QString& description )
775
797
{
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 );
777
804
}
778
805
779
806
QgsVectorLayer* QgsComposerItemBaseWidget::atlasCoverageLayer () const
0 commit comments