void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol() { // Change the selected symbols alone if anything is selected QItemSelectionModel* m = viewGraduated->selectionModel(); QModelIndexList i = m->selectedRows(); if ( m && !i.isEmpty() ) { changeSelectedSymbols(); return; } // Otherwise change the base mGraduatedSymbol QgsSymbolV2* newSymbol = mGraduatedSymbol->clone(); QgsSymbolV2SelectorDialog dlg( newSymbol, mStyle, mLayer, this ); dlg.setMapCanvas( mMapCanvas ); if ( !dlg.exec() ) { delete newSymbol; return; } delete mGraduatedSymbol; mGraduatedSymbol = newSymbol; mSizeUnitWidget->blockSignals( true ); mSizeUnitWidget->setUnit( mGraduatedSymbol->outputUnit() ); mSizeUnitWidget->setMapUnitScale( mGraduatedSymbol->mapUnitScale() ); mSizeUnitWidget->blockSignals( false ); updateGraduatedSymbolIcon(); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererWidget::applyChangeToSymbol() { mSizeUnitWidget->blockSignals( true ); mSizeUnitWidget->setUnit( mGraduatedSymbol->outputUnit() ); mSizeUnitWidget->setMapUnitScale( mGraduatedSymbol->mapUnitScale() ); mSizeUnitWidget->blockSignals( false ); QItemSelectionModel *m = viewGraduated->selectionModel(); QModelIndexList selectedIndexes = m->selectedRows( 1 ); if ( m && !selectedIndexes.isEmpty() ) { const auto constSelectedIndexes = selectedIndexes; for ( const QModelIndex &idx : constSelectedIndexes ) { if ( idx.isValid() ) { int rangeIdx = idx.row(); QgsSymbol *newRangeSymbol = mGraduatedSymbol->clone(); if ( selectedIndexes.count() > 1 ) { //if updating multiple ranges, retain the existing range colors newRangeSymbol->setColor( mRenderer->ranges().at( rangeIdx ).symbol()->color() ); } mRenderer->updateRangeSymbol( rangeIdx, newRangeSymbol ); } } } else { mRenderer->updateSymbols( mGraduatedSymbol.get() ); } refreshSymbolView(); emit widgetChanged(); }
void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol() { // Change the selected symbols alone if anything is selected QItemSelectionModel* m = viewGraduated->selectionModel(); QModelIndexList i = m->selectedRows(); if ( m && i.size() > 0 ) { changeSelectedSymbols(); return; } // Otherwise change the base mGraduatedSymbol QgsSymbolV2* newSymbol = mGraduatedSymbol->clone(); QgsSymbolV2SelectorDialog dlg( newSymbol, mStyle, mLayer, this ); if ( !dlg.exec() ) { delete newSymbol; return; } mGraduatedSymbol = newSymbol; updateGraduatedSymbolIcon(); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererWidget::toggleBoundariesLink( bool linked ) { //If the checkbox controlling the link between boundaries was unchecked and we check it, we have to link the boundaries //This is done by updating all lower ranges to the upper value of the range above if ( linked ) { if ( ! rowsOrdered() ) { int result = QMessageBox::warning( this, tr( "Link Class Boundaries" ), tr( "Rows will be reordered before linking boundaries. Continue?" ), QMessageBox::Ok | QMessageBox::Cancel ); if ( result != QMessageBox::Ok ) { cbxLinkBoundaries->setChecked( false ); return; } mRenderer->sortByValue(); } // Ok to proceed for ( int i = 1; i < mRenderer->ranges().size(); ++i ) { mRenderer->updateRangeLowerValue( i, mRenderer->ranges()[i - 1].upperValue() ); } refreshSymbolView(); } }
void QgsGraduatedSymbolRendererV2Widget::reapplyColorRamp() { QgsVectorColorRampV2* ramp = cboGraduatedColorRamp->currentColorRamp(); if ( ramp == NULL ) return; mRenderer->updateColorRamp( ramp ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererV2Widget::on_mSizeUnitWidget_changed() { if ( !mGraduatedSymbol ) return; mGraduatedSymbol->setOutputUnit( mSizeUnitWidget->unit() ); mGraduatedSymbol->setMapUnitScale( mSizeUnitWidget->getMapUnitScale() ); updateGraduatedSymbolIcon(); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol() { QgsSymbolV2SelectorDialog dlg( mGraduatedSymbol, mStyle, mLayer, this ); if ( !dlg.exec() ) return; updateGraduatedSymbolIcon(); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererWidget::reapplyColorRamp() { std::unique_ptr< QgsColorRamp > ramp( btnColorRamp->colorRamp() ); if ( !ramp ) return; mRenderer->updateColorRamp( ramp.release() ); mRenderer->updateSymbols( mGraduatedSymbol.get() ); refreshSymbolView(); }
void QgsGraduatedSymbolRendererV2Widget::reapplyColorRamp() { QgsVectorColorRampV2* ramp = cboGraduatedColorRamp->currentColorRamp(); if ( !ramp ) return; mRenderer->updateColorRamp( ramp, cbxInvertedColorRamp->isChecked() ); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }
void QgsRendererV2Widget::changeSymbolColor() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } QColor color = QgsColorDialogV2::getColor( symbolList.at( 0 )->color(), this, "Change Symbol Color", true ); if ( color.isValid() ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { ( *symbolIt )->setColor( color ); } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolSize() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } bool ok; double size = QInputDialog::getDouble( this, tr( "Size" ), tr( "Change symbol size" ), dynamic_cast<QgsMarkerSymbolV2*>( symbolList.at( 0 ) )->size(), 0.0, 999999, 1, &ok ); if ( ok ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { dynamic_cast<QgsMarkerSymbolV2*>( *symbolIt )->setSize( size ); } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolTransparency() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } bool ok; double oldTransparency = ( 1 - symbolList.at( 0 )->alpha() ) * 100; // convert to percents double transparency = QInputDialog::getDouble( this, tr( "Transparency" ), tr( "Change symbol transparency [%]" ), oldTransparency, 0.0, 100.0, 0, &ok ); if ( ok ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { ( *symbolIt )->setAlpha( 1 - transparency / 100 ); } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolWidth() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } bool ok; QgsLineSymbolV2* line = dynamic_cast<QgsLineSymbolV2*>( symbolList.at( 0 ) ) ; double width = QInputDialog::getDouble( this, tr( "Width" ), tr( "Change symbol width" ), line ? line->width() : 0.0 , 0.0, 999999, 1, &ok ); if ( ok ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { line = dynamic_cast<QgsLineSymbolV2*>( *symbolIt ); if ( line ) line->setWidth( width ); } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolUnit() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } bool ok; int currentUnit = ( symbolList.at( 0 )->outputUnit() == QgsSymbolV2::MM ) ? 0 : 1; QString item = QInputDialog::getItem( this, tr( "Symbol unit" ), tr( "Select symbol unit" ), QStringList() << tr( "Millimeter" ) << tr( "Map unit" ), currentUnit, false, &ok ); if ( ok ) { QgsSymbolV2::OutputUnit unit = ( item.compare( tr( "Millimeter" ) ) == 0 ) ? QgsSymbolV2::MM : QgsSymbolV2::MapUnit; QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { ( *symbolIt )->setOutputUnit( unit ); } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolAngle() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } QgsDataDefinedRotationDialog dlg( symbolList, mLayer ); if ( QDialog::Accepted == dlg.exec() ) { if ( !dlg.mDDBtn->isActive() ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { if (( *symbolIt )->type() == QgsSymbolV2::Marker ) static_cast<QgsMarkerSymbolV2*>( *symbolIt )->setAngle( dlg.mSpinBox->value() ); } } refreshSymbolView(); } }
void QgsRendererV2Widget::changeSymbolWidth() { QList<QgsSymbolV2*> symbolList = selectedSymbols(); if ( symbolList.size() < 1 ) { return; } QgsDataDefinedWidthDialog dlg( symbolList, mLayer ); if ( QMessageBox::Ok == dlg.exec() ) { if ( !dlg.mDDBtn->isActive() ) { QList<QgsSymbolV2*>::iterator symbolIt = symbolList.begin(); for ( ; symbolIt != symbolList.end(); ++symbolIt ) { if (( *symbolIt )->type() == QgsSymbolV2::Line ) static_cast<QgsLineSymbolV2*>( *symbolIt )->setWidth( dlg.mSpinBox->value() ); } } refreshSymbolView(); } }
void QgsGraduatedSymbolRendererV2Widget::reapplySizes() { mRenderer->setSymbolSizes( minSizeSpinBox->value(), maxSizeSpinBox->value() ); mRenderer->updateSymbols( mGraduatedSymbol ); refreshSymbolView(); }