QgsRendererRange QgsGraduatedSymbolRendererModel::rendererRange( const QModelIndex &index ) { if ( !index.isValid() || !mRenderer || mRenderer->ranges().size() <= index.row() ) { return QgsRendererRange(); } return mRenderer->ranges().value( index.row() ); }
static QgsFeatureRenderer* readOldGraduatedSymbolRenderer( const QDomNode& rnode, QgsWkbTypes::GeometryType geomType ) { QDomNode modeNode = rnode.namedItem( "mode" ); QString modeValue = modeNode.toElement().text(); QDomNode classnode = rnode.namedItem( "classificationfield" ); QString classificationField = classnode.toElement().text(); QgsGraduatedSymbolRenderer::Mode m = QgsGraduatedSymbolRenderer::Custom; if ( modeValue == "Empty" ) { m = QgsGraduatedSymbolRenderer::Custom; } else if ( modeValue == "Quantile" ) { m = QgsGraduatedSymbolRenderer::Quantile; } else //default { m = QgsGraduatedSymbolRenderer::EqualInterval; } // load ranges and symbols QgsRangeList ranges; QDomNode symbolnode = rnode.namedItem( "symbol" ); while ( !symbolnode.isNull() ) { QgsSymbol* symbol = readOldSymbol( symbolnode, geomType ); if ( symbol ) { QgsOldSymbolMeta meta = readSymbolMeta( symbolnode ); double lowerValue = meta.lowerValue.toDouble(); double upperValue = meta.upperValue.toDouble(); QString label = meta.label; if ( label.isEmpty() ) label = QString( "%1 - %2" ).arg( lowerValue, -1, 'f', 3 ).arg( upperValue, -1, 'f', 3 ); ranges.append( QgsRendererRange( lowerValue, upperValue, symbol, label ) ); } symbolnode = symbolnode.nextSibling(); } // create renderer QgsGraduatedSymbolRenderer* r = new QgsGraduatedSymbolRenderer( classificationField, ranges ); r->setMode( m ); return r; }