QgsComposerItemWidget::QgsComposerItemWidget( QWidget* parent, QgsComposerItem* item ): QWidget( parent ), mItem( item ) { setupUi( this ); //make button exclusive QButtonGroup* buttonGroup = new QButtonGroup( this ); buttonGroup->addButton( mUpperLeftCheckBox ); buttonGroup->addButton( mUpperMiddleCheckBox ); buttonGroup->addButton( mUpperRightCheckBox ); buttonGroup->addButton( mMiddleLeftCheckBox ); buttonGroup->addButton( mMiddleCheckBox ); buttonGroup->addButton( mMiddleRightCheckBox ); buttonGroup->addButton( mLowerLeftCheckBox ); buttonGroup->addButton( mLowerMiddleCheckBox ); buttonGroup->addButton( mLowerRightCheckBox ); buttonGroup->setExclusive( true ); mXLineEdit->setValidator( new QDoubleValidator( 0 ) ); mYLineEdit->setValidator( new QDoubleValidator( 0 ) ); mWidthLineEdit->setValidator( new QDoubleValidator( 0 ) ); mHeightLineEdit->setValidator( new QDoubleValidator( 0 ) ); setValuesForGuiElements(); connect( mItem, SIGNAL( sizeChanged() ), this, SLOT( setValuesForGuiPositionElements() ) ); connect( mTransparencySlider, SIGNAL( valueChanged( int ) ), mTransparencySpnBx, SLOT( setValue( int ) ) ); connect( mTransparencySpnBx, SIGNAL( valueChanged( int ) ), mTransparencySlider, SLOT( setValue( int ) ) ); }
void QgsComposerItemWidget::on_mUpperLeftCheckBox_stateChanged( int state ) { if ( state != Qt::Checked ) return; if ( mItem ) { mItem->setItemPosition( mItem->pos().x(), mItem->pos().y(), QgsComposerItem::UpperLeft ); } setValuesForGuiPositionElements(); }
void QgsLayoutItemPropertiesWidget::mLowerRightCheckBox_stateChanged( bool state ) { if ( !state ) return; if ( mItem ) { changeItemReference( QgsLayoutItem::LowerRight ); } setValuesForGuiPositionElements(); }
void QgsComposerItemWidget::on_mLowerRightCheckBox_stateChanged( int state ) { if ( state != Qt::Checked ) return; if ( mItem ) { mItem->setItemPosition( mItem->pos().x() + mItem->rect().width(), mItem->pos().y() + mItem->rect().height(), QgsComposerItem::LowerRight ); } setValuesForGuiPositionElements(); }
void QgsComposerItemWidget::on_mUpperMiddleCheckBox_stateChanged( int state ) { if ( state != Qt::Checked ) return; if ( mItem ) { mItem->setItemPosition( mItem->pos().x() + mItem->rect().width() / 2.0, mItem->pos().y(), QgsComposerItem::UpperMiddle ); } setValuesForGuiPositionElements(); }
void QgsComposerItemWidget::setValuesForGuiElements() { if ( !mItem ) { return; } setValuesForGuiPositionElements(); mOutlineWidthSpinBox->blockSignals( true ); mFrameGroupBox->blockSignals( true ); mBackgroundGroupBox->blockSignals( true ); mItemIdLineEdit->blockSignals( true ); mItemUuidLineEdit->blockSignals( true ); mBlendModeCombo->blockSignals( true ); mTransparencySlider->blockSignals( true ); mTransparencySpnBx->blockSignals( true ); mFrameColorButton->blockSignals( true ); mBackgroundColorButton->blockSignals( true ); mItemRotationSpinBox->blockSignals( true ); mBackgroundColorButton->setColor( mItem->brush().color() ); mBackgroundColorButton->setColorDialogTitle( tr( "Select background color" ) ); mBackgroundColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); mFrameColorButton->setColor( mItem->pen().color() ); mFrameColorButton->setColorDialogTitle( tr( "Select frame color" ) ); mFrameColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); mOutlineWidthSpinBox->setValue( mItem->pen().widthF() ); mItemIdLineEdit->setText( mItem->id() ); mItemUuidLineEdit->setText( mItem->uuid() ); mFrameGroupBox->setChecked( mItem->hasFrame() ); mBackgroundGroupBox->setChecked( mItem->hasBackground() ); mBlendModeCombo->setBlendMode( mItem->blendMode() ); mTransparencySlider->setValue( mItem->transparency() ); mTransparencySpnBx->setValue( mItem->transparency() ); mItemRotationSpinBox->setValue( mItem->itemRotation() ); mBackgroundColorButton->blockSignals( false ); mFrameColorButton->blockSignals( false ); mOutlineWidthSpinBox->blockSignals( false ); mFrameGroupBox->blockSignals( false ); mBackgroundGroupBox->blockSignals( false ); mItemIdLineEdit->blockSignals( false ); mItemUuidLineEdit->blockSignals( false ); mBlendModeCombo->blockSignals( false ); mTransparencySlider->blockSignals( false ); mTransparencySpnBx->blockSignals( false ); mItemRotationSpinBox->blockSignals( false ); }
void QgsLayoutItemPropertiesWidget::setValuesForGuiElements() { if ( !mItem ) { return; } mBackgroundColorButton->setColorDialogTitle( tr( "Select Background Color" ) ); mBackgroundColorButton->setAllowOpacity( true ); mBackgroundColorButton->setContext( QStringLiteral( "composer" ) ); mFrameColorButton->setColorDialogTitle( tr( "Select Frame Color" ) ); mFrameColorButton->setAllowOpacity( true ); mFrameColorButton->setContext( QStringLiteral( "composer" ) ); setValuesForGuiPositionElements(); setValuesForGuiNonPositionElements(); populateDataDefinedButtons(); }
void QgsComposerItemWidget::setValuesForGuiElements() { if ( !mItem ) { return; } mBackgroundColorButton->setColorDialogTitle( tr( "Select background color" ) ); mBackgroundColorButton->setAllowAlpha( true ); mBackgroundColorButton->setContext( "composer" ); mFrameColorButton->setColorDialogTitle( tr( "Select frame color" ) ); mFrameColorButton->setAllowAlpha( true ); mFrameColorButton->setContext( "composer" ); setValuesForGuiPositionElements(); setValuesForGuiNonPositionElements(); populateDataDefinedButtons(); }
QgsComposerItemWidget::QgsComposerItemWidget( QWidget* parent, QgsComposerItem* item ) : QgsComposerItemBaseWidget( parent, item ) , mItem( item ) , mFreezeXPosSpin( false ) , mFreezeYPosSpin( false ) , mFreezeWidthSpin( false ) , mFreezeHeightSpin( false ) , mFreezePageSpin( false ) { setupUi( this ); //make button exclusive QButtonGroup* buttonGroup = new QButtonGroup( this ); buttonGroup->addButton( mUpperLeftCheckBox ); buttonGroup->addButton( mUpperMiddleCheckBox ); buttonGroup->addButton( mUpperRightCheckBox ); buttonGroup->addButton( mMiddleLeftCheckBox ); buttonGroup->addButton( mMiddleCheckBox ); buttonGroup->addButton( mMiddleRightCheckBox ); buttonGroup->addButton( mLowerLeftCheckBox ); buttonGroup->addButton( mLowerMiddleCheckBox ); buttonGroup->addButton( mLowerRightCheckBox ); buttonGroup->setExclusive( true ); setValuesForGuiElements(); connect( mItem->composition(), SIGNAL( paperSizeChanged() ), this, SLOT( setValuesForGuiPositionElements() ) ); connect( mItem, SIGNAL( sizeChanged() ), this, SLOT( setValuesForGuiPositionElements() ) ); connect( mItem, SIGNAL( itemChanged() ), this, SLOT( setValuesForGuiNonPositionElements() ) ); connect( mTransparencySlider, SIGNAL( valueChanged( int ) ), mTransparencySpnBx, SLOT( setValue( int ) ) ); QgsExpressionContext* context = mItem->createExpressionContext(); mVariableEditor->setContext( context ); mVariableEditor->setEditableScopeIndex( context->scopeCount() - 1 ); delete context; connect( mVariableEditor, SIGNAL( scopeChanged() ), this, SLOT( variablesChanged() ) ); //connect atlas signals to data defined buttons QgsAtlasComposition* atlas = atlasComposition(); if ( atlas ) { //repopulate data defined buttons if atlas layer changes connect( atlas, SIGNAL( coverageLayerChanged( QgsVectorLayer* ) ), this, SLOT( populateDataDefinedButtons() ) ); connect( atlas, SIGNAL( toggled( bool ) ), this, SLOT( populateDataDefinedButtons() ) ); } //connect data defined buttons connect( mXPositionDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mXPositionDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mYPositionDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mYPositionDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mWidthDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mWidthDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mHeightDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mHeightDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mItemRotationDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mItemRotationDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mTransparencyDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mTransparencyDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mBlendModeDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mBlendModeDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mExcludePrintsDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mExcludePrintsDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); }