void QgsLayout::setCustomProperty( const QString &key, const QVariant &value ) { mCustomProperties.setValue( key, value ); if ( key.startsWith( QLatin1String( "variable" ) ) ) emit variablesChanged(); }
ReliabilityAnalysisForm::ReliabilityAnalysisForm(QWidget *parent) : AnalysisForm("ReliabilityAnalysisForm", parent), ui(new Ui::ReliabilityAnalysisForm) { ui->setupUi(this); ui->reverseScaledItems->setLabels("Normal-Scaled Items", "Reverse-Scaled Items"); ui->listAvailableVariables->setModel(&_availableVariablesModel); _variableListModel = new TableModelVariablesAssigned(this); _variableListModel->setSource(&_availableVariablesModel); _variableListModel->setVariableTypesSuggested(Column::ColumnTypeNominal | Column::ColumnTypeOrdinal | Column::ColumnTypeScale); _variableListModel->setVariableTypesAllowed(Column::ColumnTypeNominal | Column::ColumnTypeOrdinal | Column::ColumnTypeScale); ui->variables->setModel(_variableListModel); ui->listAvailableVariables->setDoubleClickTarget(ui->variables); ui->variables->setDoubleClickTarget(ui->listAvailableVariables); ui->assignButton->setSourceAndTarget(ui->listAvailableVariables, ui->variables); connect(_variableListModel, SIGNAL(assignmentsChanging()), this, SLOT(variablesChanging())); connect(_variableListModel, SIGNAL(assignmentsChanged()), this, SLOT(variablesChanged())); connect(_variableListModel, SIGNAL(termsChanged()), this, SLOT(termsChanged())); ui->containerRevScaledItems->hide(); ui->containerAdvOptions->hide(); }
void ReliabilityAnalysisForm::bindTo(Options *options, DataSet *dataSet) { AnalysisForm::bindTo(options, dataSet); variablesChanging(); variablesChanged(); }
QgsCompositionWidget::QgsCompositionWidget( QWidget* parent, QgsComposition* c ): QWidget( parent ), mComposition( c ) { setupUi( this ); blockSignals( true ); createPaperEntries(); //unit mPaperUnitsComboBox->addItem( tr( "mm" ) ); mPaperUnitsComboBox->addItem( tr( "inch" ) ); //orientation mPaperOrientationComboBox->insertItem( 0, tr( "Landscape" ) ); mPaperOrientationComboBox->insertItem( 1, tr( "Portrait" ) ); mPaperOrientationComboBox->setCurrentIndex( 0 ); //read with/height from composition and find suitable entries to display displayCompositionWidthHeight(); mVariableEditor->context()->appendScope( QgsExpressionContextUtils::globalScope() ); mVariableEditor->context()->appendScope( QgsExpressionContextUtils::projectScope() ); mVariableEditor->context()->appendScope( QgsExpressionContextUtils::compositionScope( mComposition ) ); mVariableEditor->reloadContext(); mVariableEditor->setEditableScopeIndex( 2 ); connect( mVariableEditor, SIGNAL( scopeChanged() ), this, SLOT( variablesChanged() ) ); if ( mComposition ) { mNumPagesSpinBox->setValue( mComposition->numPages() ); connect( mComposition, SIGNAL( nPagesChanged() ), this, SLOT( setNumberPages() ) ); updatePageStyle(); //read printout resolution from composition mResolutionSpinBox->setValue( mComposition->printResolution() ); //print as raster mPrintAsRasterCheckBox->setChecked( mComposition->printAsRaster() ); // world file generation mGenerateWorldFileCheckBox->setChecked( mComposition->generateWorldFile() ); // populate the map list mWorldFileMapComboBox->clear(); QList<const QgsComposerMap*> availableMaps = mComposition->composerMapItems(); QList<const QgsComposerMap*>::const_iterator mapItemIt = availableMaps.constBegin(); for ( ; mapItemIt != availableMaps.constEnd(); ++mapItemIt ) { mWorldFileMapComboBox->addItem( tr( "Map %1" ).arg(( *mapItemIt )->id() ), qVariantFromValue(( void* )*mapItemIt ) ); } int idx = mWorldFileMapComboBox->findData( qVariantFromValue(( void* )mComposition->worldFileMap() ) ); if ( idx != -1 ) { mWorldFileMapComboBox->setCurrentIndex( idx ); } // Connect to addition / removal of maps connect( mComposition, SIGNAL( composerMapAdded( QgsComposerMap* ) ), this, SLOT( onComposerMapAdded( QgsComposerMap* ) ) ); connect( mComposition, SIGNAL( itemRemoved( QgsComposerItem* ) ), this, SLOT( onItemRemoved( QgsComposerItem* ) ) ); mSnapToleranceSpinBox->setValue( mComposition->snapTolerance() ); //snap grid mGridResolutionSpinBox->setValue( mComposition->snapGridResolution() ); mOffsetXSpinBox->setValue( mComposition->snapGridOffsetX() ); mOffsetYSpinBox->setValue( mComposition->snapGridOffsetY() ); QgsAtlasComposition* atlas = &mComposition->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( mPaperSizeDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperSizeDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperSizeDDBtn, SIGNAL( dataDefinedActivated( bool ) ), mPaperSizeComboBox, SLOT( setDisabled( bool ) ) ); connect( mPaperWidthDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperWidthDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperWidthDDBtn, SIGNAL( dataDefinedActivated( bool ) ), mPaperWidthDoubleSpinBox, SLOT( setDisabled( bool ) ) ); connect( mPaperHeightDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperHeightDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperHeightDDBtn, SIGNAL( dataDefinedActivated( bool ) ), mPaperHeightDoubleSpinBox, SLOT( setDisabled( bool ) ) ); connect( mNumPagesDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mNumPagesDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mNumPagesDDBtn, SIGNAL( dataDefinedActivated( bool ) ), mNumPagesSpinBox, SLOT( setDisabled( bool ) ) ); connect( mPaperOrientationDDBtn, SIGNAL( dataDefinedChanged( const QString& ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperOrientationDDBtn, SIGNAL( dataDefinedActivated( bool ) ), this, SLOT( updateDataDefinedProperty() ) ); connect( mPaperOrientationDDBtn, SIGNAL( dataDefinedActivated( bool ) ), mPaperOrientationComboBox, SLOT( setDisabled( bool ) ) ); //initialize data defined buttons populateDataDefinedButtons(); blockSignals( false ); }
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() ) ); }
void TestQgsProject::variablesChanged() { QSignalSpy spyVariablesChanged( QgsProject::instance(), SIGNAL( variablesChanged() ) ); QgsProject::instance()->emitVariablesChanged(); QVERIFY( spyVariablesChanged.count() == 1 ); }