void QgsGraduatedSymbolRendererV2Widget::disconnectUpdateHandlers() { disconnect( spinGraduatedClasses, SIGNAL( valueChanged( int ) ), this, SLOT( classifyGraduated() ) ); disconnect( cboGraduatedMode, SIGNAL( currentIndexChanged( int ) ), this, SLOT( classifyGraduated() ) ); disconnect( cboGraduatedColorRamp, SIGNAL( currentIndexChanged( int ) ), this, SLOT( reapplyColorRamp() ) ); disconnect( cboGraduatedColorRamp, SIGNAL( sourceRampEdited() ), this, SLOT( reapplyColorRamp() ) ); disconnect( mButtonEditRamp, SIGNAL( clicked() ), cboGraduatedColorRamp, SLOT( editSourceRamp() ) ); disconnect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ), this, SLOT( reapplyColorRamp() ) ); disconnect( spinPrecision, SIGNAL( valueChanged( int ) ), this, SLOT( labelFormatChanged() ) ); disconnect( cbxTrimTrailingZeroes, SIGNAL( toggled( bool ) ), this, SLOT( labelFormatChanged() ) ); disconnect( txtLegendFormat, SIGNAL( textChanged( QString ) ), this, SLOT( labelFormatChanged() ) ); disconnect( minSizeSpinBox, SIGNAL( valueChanged( double ) ), this, SLOT( reapplySizes() ) ); disconnect( maxSizeSpinBox, SIGNAL( valueChanged( double ) ), this, SLOT( reapplySizes() ) ); disconnect( mModel, SIGNAL( rowsMoved() ), this, SLOT( rowsMoved() ) ); disconnect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( modelDataChanged() ) ); }
QgsGlowWidget::QgsGlowWidget( QWidget *parent ) : QgsPaintEffectWidget( parent ) , mEffect( NULL ) { setupUi( this ); mColorBtn->setAllowAlpha( false ); mColorBtn->setColorDialogTitle( tr( "Select glow color" ) ); mColorBtn->setContext( "symbology" ); mSpreadUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::Pixel << QgsSymbolV2::MapUnit ); mRampComboBox->populate( QgsStyleV2::defaultStyle() ); mRampComboBox->setShowGradientOnly( true ); connect( mRampComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( applyColorRamp() ) ); connect( mRampComboBox, SIGNAL( sourceRampEdited() ), this, SLOT( applyColorRamp() ) ); connect( mButtonEditRamp, SIGNAL( clicked() ), mRampComboBox, SLOT( editSourceRamp() ) ); connect( radioSingleColor, SIGNAL( toggled( bool ) ), this, SLOT( colorModeChanged() ) ); initGui(); }
QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget( QgsRasterLayer* layer, const QgsRectangle &extent ) : QgsRasterRendererWidget( layer, extent ) , mMinMaxWidget( nullptr ) , mMinMaxOrigin( 0 ) { QSettings settings; setupUi( this ); mColormapTreeWidget->setColumnWidth( ColorColumn, 50 ); QString defaultPalette = settings.value( "/Raster/defaultPalette", "Spectral" ).toString(); mColorRampComboBox->populate( QgsStyle::defaultStyle() ); QgsDebugMsg( "defaultPalette = " + defaultPalette ); mColorRampComboBox->setCurrentIndex( mColorRampComboBox->findText( defaultPalette ) ); connect( mButtonEditRamp, SIGNAL( clicked() ), mColorRampComboBox, SLOT( editSourceRamp() ) ); if ( !mRasterLayer ) { return; } QgsRasterDataProvider* provider = mRasterLayer->dataProvider(); if ( !provider ) { return; } // Must be before adding items to mBandComboBox (signal) mMinLineEdit->setValidator( new QDoubleValidator( mMinLineEdit ) ); mMaxLineEdit->setValidator( new QDoubleValidator( mMaxLineEdit ) ); mMinMaxWidget = new QgsRasterMinMaxWidget( layer, this ); mMinMaxWidget->setExtent( extent ); mMinMaxWidget->setMapCanvas( mCanvas ); QHBoxLayout *layout = new QHBoxLayout(); layout->setContentsMargins( 0, 0, 0, 0 ); mMinMaxContainerWidget->setLayout( layout ); layout->addWidget( mMinMaxWidget ); connect( mMinMaxWidget, SIGNAL( load( int, double, double, int ) ), this, SLOT( loadMinMax( int, double, double, int ) ) ); //fill available bands into combo box int nBands = provider->bandCount(); for ( int i = 1; i <= nBands; ++i ) //band numbering seem to start at 1 { mBandComboBox->addItem( displayBandName( i ), i ); } mColorInterpolationComboBox->addItem( tr( "Discrete" ), QgsColorRampShader::DISCRETE ); mColorInterpolationComboBox->addItem( tr( "Linear" ), QgsColorRampShader::INTERPOLATED ); mColorInterpolationComboBox->addItem( tr( "Exact" ), QgsColorRampShader::EXACT ); mColorInterpolationComboBox->setCurrentIndex( mColorInterpolationComboBox->findData( QgsColorRampShader::INTERPOLATED ) ); mClassificationModeComboBox->addItem( tr( "Continuous" ), Continuous ); mClassificationModeComboBox->addItem( tr( "Equal interval" ), EqualInterval ); mClassificationModeComboBox->addItem( tr( "Quantile" ), Quantile ); mNumberOfEntriesSpinBox->setValue( 5 ); // some default setFromRenderer( layer->renderer() ); // If there is currently no min/max, load default with user current default options if ( mMinLineEdit->text().isEmpty() || mMaxLineEdit->text().isEmpty() ) { mMinMaxWidget->load(); } on_mClassificationModeComboBox_currentIndexChanged( 0 ); resetClassifyButton(); connect( mClassificationModeComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mMinLineEdit, SIGNAL( textChanged( QString ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mMaxLineEdit, SIGNAL( textChanged( QString ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mColorRampComboBox, SIGNAL( sourceRampEdited() ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mColorRampComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mInvertCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mNumberOfEntriesSpinBox, SIGNAL( valueChanged( int ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mBandComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( on_mClassifyButton_clicked() ) ); connect( mClipCheckBox, SIGNAL( toggled( bool ) ), this, SIGNAL( widgetChanged() ) ); }
QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) : QgsRendererV2Widget( layer, style ) , mRenderer( nullptr ) , mModel( nullptr ) { // try to recognize the previous renderer // (null renderer means "no previous renderer") if ( renderer ) { mRenderer = QgsCategorizedSymbolRendererV2::convertFromRenderer( renderer ); } if ( !mRenderer ) { mRenderer = new QgsCategorizedSymbolRendererV2( "", QgsCategoryList() ); } QString attrName = mRenderer->classAttribute(); mOldClassificationAttribute = attrName; // setup user interface setupUi( this ); mExpressionWidget->setLayer( mLayer ); cboCategorizedColorRamp->populate( mStyle ); int randomIndex = cboCategorizedColorRamp->findText( tr( "Random colors" ) ); if ( randomIndex != -1 ) { cboCategorizedColorRamp->setCurrentIndex( randomIndex ); mButtonEditRamp->setEnabled( false ); } // set project default color ramp QString defaultColorRamp = QgsProject::instance()->readEntry( "DefaultStyles", "/ColorRamp", "" ); if ( defaultColorRamp != "" ) { int index = cboCategorizedColorRamp->findText( defaultColorRamp, Qt::MatchCaseSensitive ); if ( index >= 0 ) cboCategorizedColorRamp->setCurrentIndex( index ); } mCategorizedSymbol = QgsSymbolV2::defaultSymbol( mLayer->geometryType() ); mModel = new QgsCategorizedSymbolRendererV2Model( this ); mModel->setRenderer( mRenderer ); // update GUI from renderer updateUiFromRenderer(); viewCategories->setModel( mModel ); viewCategories->resizeColumnToContents( 0 ); viewCategories->resizeColumnToContents( 1 ); viewCategories->resizeColumnToContents( 2 ); viewCategories->setStyle( new QgsCategorizedSymbolRendererV2ViewStyle( viewCategories->style() ) ); connect( mModel, SIGNAL( rowsMoved() ), this, SLOT( rowsMoved() ) ); connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SIGNAL( widgetChanged() ) ); connect( mExpressionWidget, SIGNAL( fieldChanged( QString ) ), this, SLOT( categoryColumnChanged( QString ) ) ); connect( viewCategories, SIGNAL( doubleClicked( const QModelIndex & ) ), this, SLOT( categoriesDoubleClicked( const QModelIndex & ) ) ); connect( viewCategories, SIGNAL( customContextMenuRequested( const QPoint& ) ), this, SLOT( contextMenuViewCategories( const QPoint& ) ) ); connect( btnChangeCategorizedSymbol, SIGNAL( clicked() ), this, SLOT( changeCategorizedSymbol() ) ); connect( btnAddCategories, SIGNAL( clicked() ), this, SLOT( addCategories() ) ); connect( btnDeleteCategories, SIGNAL( clicked() ), this, SLOT( deleteCategories() ) ); connect( btnDeleteAllCategories, SIGNAL( clicked() ), this, SLOT( deleteAllCategories() ) ); connect( btnAddCategory, SIGNAL( clicked() ), this, SLOT( addCategory() ) ); connect( cbxInvertedColorRamp, SIGNAL( toggled( bool ) ), this, SLOT( applyColorRamp() ) ); connect( cboCategorizedColorRamp, SIGNAL( currentIndexChanged( int ) ), this, SLOT( applyColorRamp() ) ); connect( cboCategorizedColorRamp, SIGNAL( sourceRampEdited() ), this, SLOT( applyColorRamp() ) ); connect( mButtonEditRamp, SIGNAL( clicked() ), cboCategorizedColorRamp, SLOT( editSourceRamp() ) ); // menus for data-defined rotation/size QMenu* advMenu = new QMenu; advMenu->addAction( tr( "Match to saved symbols" ), this, SLOT( matchToSymbolsFromLibrary() ) ); advMenu->addAction( tr( "Match to symbols from file..." ), this, SLOT( matchToSymbolsFromXml() ) ); advMenu->addAction( tr( "Symbol levels..." ), this, SLOT( showSymbolLevels() ) ); btnAdvanced->setMenu( advMenu ); mExpressionWidget->registerGetExpressionContextCallback( &_getExpressionContext, this ); }
QgsHeatmapRendererWidget::QgsHeatmapRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) : QgsRendererV2Widget( layer, style ) , mRenderer( nullptr ) { if ( !layer ) { return; } // the renderer only applies to point vector layers if ( layer->geometryType() != QGis::Point ) { //setup blank dialog mRenderer = nullptr; QGridLayout* layout = new QGridLayout( this ); QLabel* label = new QLabel( tr( "The heatmap renderer only applies to point and multipoint layers. \n" "'%1' is not a point layer and cannot be rendered as a heatmap." ) .arg( layer->name() ), this ); layout->addWidget( label ); return; } setupUi( this ); mRadiusUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::Pixel << QgsSymbolV2::MapUnit ); mWeightExpressionWidget->registerGetExpressionContextCallback( &_getExpressionContext, this ); if ( renderer ) { mRenderer = QgsHeatmapRenderer::convertFromRenderer( renderer ); } if ( !mRenderer ) { mRenderer = new QgsHeatmapRenderer(); } mRampComboBox->setShowGradientOnly( true ); mRampComboBox->populate( QgsStyleV2::defaultStyle() ); connect( mRampComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( applyColorRamp() ) ); connect( mRampComboBox, SIGNAL( sourceRampEdited() ), this, SLOT( applyColorRamp() ) ); connect( mButtonEditRamp, SIGNAL( clicked() ), mRampComboBox, SLOT( editSourceRamp() ) ); if ( mRenderer->colorRamp() ) { mRampComboBox->blockSignals( true ); mRampComboBox->setSourceColorRamp( mRenderer->colorRamp() ); mRampComboBox->blockSignals( false ); } mRadiusSpinBox->blockSignals( true ); mRadiusSpinBox->setValue( mRenderer->radius() ); mRadiusSpinBox->blockSignals( false ); mRadiusUnitWidget->blockSignals( true ); mRadiusUnitWidget->setUnit( mRenderer->radiusUnit() ); mRadiusUnitWidget->setMapUnitScale( mRenderer->radiusMapUnitScale() ); mRadiusUnitWidget->blockSignals( false ); mMaxSpinBox->blockSignals( true ); mMaxSpinBox->setValue( mRenderer->maximumValue() ); mMaxSpinBox->blockSignals( false ); mQualitySlider->blockSignals( true ); mQualitySlider->setValue( mRenderer->renderQuality() ); mQualitySlider->blockSignals( false ); mInvertCheckBox->blockSignals( true ); mInvertCheckBox->setChecked( mRenderer->invertRamp() ); mInvertCheckBox->blockSignals( false ); mWeightExpressionWidget->setLayer( layer ); mWeightExpressionWidget->setField( mRenderer->weightExpression() ); connect( mWeightExpressionWidget, SIGNAL( fieldChanged( QString ) ), this, SLOT( weightExpressionChanged( QString ) ) ); }