diff --git a/python/core/geometry/qgsgeometry.sip b/python/core/geometry/qgsgeometry.sip index c819c70c623..2dce2474e33 100644 --- a/python/core/geometry/qgsgeometry.sip +++ b/python/core/geometry/qgsgeometry.sip @@ -532,7 +532,7 @@ class QgsGeometry public: Error(); Error( QString m ); - Error( QString m, QgsPoint p ); + Error( QString m, const QgsPoint& p ); QString what(); QgsPoint where(); diff --git a/python/core/qgslegendsettings.sip b/python/core/qgslegendsettings.sip index fddbfa5dfac..7aa3e5f5193 100644 --- a/python/core/qgslegendsettings.sip +++ b/python/core/qgslegendsettings.sip @@ -47,10 +47,10 @@ class QgsLegendSettings int columnCount() const; void setColumnCount( int c ); - int splitLayer() const; + bool splitLayer() const; void setSplitLayer( bool s ); - int equalColumnWidth() const; + bool equalColumnWidth() const; void setEqualColumnWidth( bool s ); QColor fontColor() const; diff --git a/python/core/qgsvectorlayer.sip b/python/core/qgsvectorlayer.sip index e515ebeaca7..6ad9e64c0a5 100644 --- a/python/core/qgsvectorlayer.sip +++ b/python/core/qgsvectorlayer.sip @@ -190,7 +190,7 @@ class QgsVectorLayer : QgsMapLayer struct RangeData { RangeData(); - RangeData( QVariant theMin, QVariant theMax, QVariant theStep ); + RangeData( const QVariant& theMin, const QVariant& theMax, const QVariant& theStep ); QVariant mMin; QVariant mMax; diff --git a/python/core/symbology-ng/qgsheatmaprenderer.sip b/python/core/symbology-ng/qgsheatmaprenderer.sip index 170036a686e..a15b993213f 100644 --- a/python/core/symbology-ng/qgsheatmaprenderer.sip +++ b/python/core/symbology-ng/qgsheatmaprenderer.sip @@ -43,7 +43,8 @@ class QgsHeatmapRenderer : QgsFeatureRendererV2 * @see setInvertRamp * @see colorRamp */ - double invertRamp() const; + bool invertRamp() const; + /** Sets whether the ramp is inverted * @param invert set to true to invert color ramp * @see invertRamp diff --git a/python/core/symbology-ng/qgsrendererv2.sip b/python/core/symbology-ng/qgsrendererv2.sip index 5996b33ce51..e4b6d8ec73f 100644 --- a/python/core/symbology-ng/qgsrendererv2.sip +++ b/python/core/symbology-ng/qgsrendererv2.sip @@ -274,7 +274,7 @@ class QgsFeatureRendererV2 bool drawVertexMarker ); //! render editing vertex marker at specified point - void renderVertexMarker( QPointF& pt, QgsRenderContext& context ); + void renderVertexMarker( const QPointF& pt, QgsRenderContext& context ); //! render editing vertex marker for a polyline void renderVertexMarkerPolyline( QPolygonF& pts, QgsRenderContext& context ); //! render editing vertex marker for a polygon diff --git a/python/core/symbology-ng/qgssymbollayerv2utils.sip b/python/core/symbology-ng/qgssymbollayerv2utils.sip index fea6385091e..3a8796bcb69 100644 --- a/python/core/symbology-ng/qgssymbollayerv2utils.sip +++ b/python/core/symbology-ng/qgssymbollayerv2utils.sip @@ -169,7 +169,7 @@ class QgsSymbolLayerV2Utils static void labelTextToSld( QDomDocument &doc, QDomElement &element, QString label, - QFont font, QColor color = QColor(), double size = -1 ); + const QFont& font, QColor color = QColor(), double size = -1 ); /** Create ogr feature style string for pen */ static QString ogrFeatureStylePen( double width, double mmScaleFactor, double mapUnitsScaleFactor, const QColor& c, diff --git a/python/core/symbology-ng/qgssymbolv2.sip b/python/core/symbology-ng/qgssymbolv2.sip index 8e6d78e6030..fae20dad91e 100644 --- a/python/core/symbology-ng/qgssymbolv2.sip +++ b/python/core/symbology-ng/qgssymbolv2.sip @@ -156,7 +156,7 @@ class QgsSymbolV2 * @note added in QGIS 2.9 * @see setClipFeaturesToExtent */ - double clipFeaturesToExtent() const; + bool clipFeaturesToExtent() const; QSet usedAttributes() const; diff --git a/src/analysis/raster/qgsrelief.cpp b/src/analysis/raster/qgsrelief.cpp index 53a3abd0f07..efc496031c2 100644 --- a/src/analysis/raster/qgsrelief.cpp +++ b/src/analysis/raster/qgsrelief.cpp @@ -674,6 +674,7 @@ QList< QgsRelief::ReliefColor > QgsRelief::calculateOptimizedReliefClasses() colorList.push_back( QColor( 255, 133, 92 ) ); colorList.push_back( QColor( 204, 204, 204 ) ); + resultList.reserve( classBreaks.size() ); for ( int i = 1; i < classBreaks.size(); ++i ) { double minElevation = minMax[0] + classBreaks[i - 1] * frequencyClassRange; diff --git a/src/analysis/vector/qgstransectsample.cpp b/src/analysis/vector/qgstransectsample.cpp index 689ca8a48c2..41b08cedfe4 100644 --- a/src/analysis/vector/qgstransectsample.cpp +++ b/src/analysis/vector/qgstransectsample.cpp @@ -614,6 +614,7 @@ QgsGeometry* QgsTransectSample::clipBufferLine( const QgsGeometry* stratumGeom, } int size = bufferPolygon.size(); + mpl.reserve( size ); for ( int j = 0; j < size; ++j ) { mpl.append( bufferPolygon[j] ); diff --git a/src/app/qgsattributetabledialog.cpp b/src/app/qgsattributetabledialog.cpp index 20cb754293a..e67eb681c62 100644 --- a/src/app/qgsattributetabledialog.cpp +++ b/src/app/qgsattributetabledialog.cpp @@ -329,7 +329,7 @@ void QgsAttributeTableDialog::columnBoxInit() QList fields = mLayer->fields().toList(); - Q_FOREACH ( const QgsField field, fields ) + Q_FOREACH ( const QgsField& field, fields ) { int idx = mLayer->fieldNameIndex( field.name() ); if ( idx < 0 ) diff --git a/src/app/qgsconfigureshortcutsdialog.cpp b/src/app/qgsconfigureshortcutsdialog.cpp index da7174a6a12..5b0c934fc9f 100644 --- a/src/app/qgsconfigureshortcutsdialog.cpp +++ b/src/app/qgsconfigureshortcutsdialog.cpp @@ -75,6 +75,7 @@ void QgsConfigureShortcutsDialog::populateActions() QList actions = QgsShortcutsManager::instance()->listActions(); QList items; + items.reserve( actions.count() ); for ( int i = 0; i < actions.count(); ++i ) { QString actionText = actions[i]->text(); diff --git a/src/app/qgsdiagramproperties.cpp b/src/app/qgsdiagramproperties.cpp index 794de1e70ac..a78a5670013 100644 --- a/src/app/qgsdiagramproperties.cpp +++ b/src/app/qgsdiagramproperties.cpp @@ -683,6 +683,9 @@ void QgsDiagramProperties::apply() QList categoryColors; QList categoryAttributes; QList categoryLabels; + categoryColors.reserve( mDiagramAttributesTreeWidget->topLevelItemCount() ); + categoryAttributes.reserve( mDiagramAttributesTreeWidget->topLevelItemCount() ); + categoryLabels.reserve( mDiagramAttributesTreeWidget->topLevelItemCount() ); for ( int i = 0; i < mDiagramAttributesTreeWidget->topLevelItemCount(); ++i ) { QColor color = mDiagramAttributesTreeWidget->topLevelItem( i )->background( 1 ).color(); diff --git a/src/app/qgslabeldialog.cpp b/src/app/qgslabeldialog.cpp index 5478b9c83ee..43d668ce177 100644 --- a/src/app/qgslabeldialog.cpp +++ b/src/app/qgslabeldialog.cpp @@ -61,6 +61,7 @@ void QgsLabelDialog::init() const QgsFields& myFields = mLabel->fields(); QStringList myFieldStringList; myFieldStringList.append( "" ); + myFieldStringList.reserve( 1 + myFields.count() ); for ( int i = 0; i < myFields.count(); ++i ) { myFieldStringList.append( myFields[i].name() ); diff --git a/src/app/qgsmaptooladdfeature.cpp b/src/app/qgsmaptooladdfeature.cpp index ccab8aace68..a09738ef9a9 100644 --- a/src/app/qgsmaptooladdfeature.cpp +++ b/src/app/qgsmaptooladdfeature.cpp @@ -223,7 +223,7 @@ void QgsMapToolAddFeature::cadCanvasReleaseEvent( QgsMapMouseEvent* e ) QgsCurveV2* curveToAdd = 0; if ( hasCurvedSegments && providerSupportsCurvedSegments ) { - curveToAdd = dynamic_cast( captureCurve()->clone() ); + curveToAdd = captureCurve()->clone(); } else { diff --git a/src/app/qgsmaptooladdpart.cpp b/src/app/qgsmaptooladdpart.cpp index d46ef4a5c59..2973986a4cd 100644 --- a/src/app/qgsmaptooladdpart.cpp +++ b/src/app/qgsmaptooladdpart.cpp @@ -134,7 +134,7 @@ void QgsMapToolAddPart::cadCanvasReleaseEvent( QgsMapMouseEvent * e ) QgsCurveV2* curveToAdd = 0; if ( hasCurvedSegments && providerSupportsCurvedSegments ) { - curveToAdd = dynamic_cast( captureCurve()->clone() ); + curveToAdd = captureCurve()->clone(); } else { diff --git a/src/app/qgsmaptooladdring.cpp b/src/app/qgsmaptooladdring.cpp index bcee74c99ef..0cd376d7884 100644 --- a/src/app/qgsmaptooladdring.cpp +++ b/src/app/qgsmaptooladdring.cpp @@ -92,7 +92,7 @@ void QgsMapToolAddRing::cadCanvasReleaseEvent( QgsMapMouseEvent * e ) QgsCurveV2* curveToAdd = 0; if ( hasCurvedSegments && providerSupportsCurvedSegments ) { - curveToAdd = dynamic_cast( captureCurve()->clone() ); + curveToAdd = captureCurve()->clone(); } else { diff --git a/src/app/qgsmergeattributesdialog.cpp b/src/app/qgsmergeattributesdialog.cpp index 6e5aac20e77..acc56c439ba 100644 --- a/src/app/qgsmergeattributesdialog.cpp +++ b/src/app/qgsmergeattributesdialog.cpp @@ -449,6 +449,7 @@ QVariant QgsMergeAttributesDialog::sumAttribute( int col ) QVariant QgsMergeAttributesDialog::concatenationAttribute( int col ) { QStringList concatString; + concatString.reserve( mFeatureList.size() ); for ( int i = 0; i < mFeatureList.size(); ++i ) { concatString << mTableWidget->item( i + 1, col )->text(); diff --git a/src/app/qgsoptions.cpp b/src/app/qgsoptions.cpp index 7bdadcec3f6..4410550f81c 100644 --- a/src/app/qgsoptions.cpp +++ b/src/app/qgsoptions.cpp @@ -1911,6 +1911,7 @@ void QgsOptions::on_pbnExportScales_clicked() } QStringList myScales; + myScales.reserve( mListGlobalScales->count() ); for ( int i = 0; i < mListGlobalScales->count(); ++i ) { myScales.append( mListGlobalScales->item( i )->text() ); diff --git a/src/app/qgsprojectproperties.cpp b/src/app/qgsprojectproperties.cpp index 96dc4aaa6ae..bb41306955e 100644 --- a/src/app/qgsprojectproperties.cpp +++ b/src/app/qgsprojectproperties.cpp @@ -686,6 +686,7 @@ void QgsProjectProperties::apply() //save project scales QStringList myScales; + myScales.reserve( lstScales->count() ); for ( int i = 0; i < lstScales->count(); ++i ) { myScales.append( lstScales->item( i )->text() ); diff --git a/src/core/auth/qgsauthcertutils.cpp b/src/core/auth/qgsauthcertutils.cpp index bf51d30a2d3..8159106d202 100644 --- a/src/core/auth/qgsauthcertutils.cpp +++ b/src/core/auth/qgsauthcertutils.cpp @@ -49,7 +49,7 @@ QString QgsAuthCertUtils::getSslProtocolName( QSsl::SslProtocol protocol ) QMap QgsAuthCertUtils::mapDigestToCerts( QList certs ) { QMap digestmap; - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { digestmap.insert( shaHexForCert( cert ), cert ); } @@ -59,7 +59,7 @@ QMap QgsAuthCertUtils::mapDigestToCerts( QList > QgsAuthCertUtils::certsGroupedByOrg( QList certs ) { QMap< QString, QList > orgcerts; - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { QString org( cert.subjectInfo( QSslCertificate::Organization ) ); if ( org.isEmpty() ) @@ -73,7 +73,7 @@ QMap > QgsAuthCertUtils::certsGroupedByOrg( QLis QMap QgsAuthCertUtils::mapDigestToSslConfigs( QList configs ) { QMap digestmap; - Q_FOREACH ( QgsAuthConfigSslServer config, configs ) + Q_FOREACH ( const QgsAuthConfigSslServer& config, configs ) { digestmap.insert( shaHexForCert( config.sslCertificate() ), config ); } @@ -83,7 +83,7 @@ QMap QgsAuthCertUtils::mapDigestToSslConfigs( Q QMap > QgsAuthCertUtils::sslConfigsGroupedByOrg( QList configs ) { QMap< QString, QList > orgconfigs; - Q_FOREACH ( QgsAuthConfigSslServer config, configs ) + Q_FOREACH ( const QgsAuthConfigSslServer& config, configs ) { QString org( config.sslCertificate().subjectInfo( QSslCertificate::Organization ) ); if ( org.isEmpty() ) @@ -371,6 +371,7 @@ QString QgsAuthCertUtils::getColonDelimited( const QString &txt ) // 64321c05b0ebab8e2b67ec0d7d9e2b6d4bc3c303 // -> 64:32:1c:05:b0:eb:ab:8e:2b:67:ec:0d:7d:9e:2b:6d:4b:c3:c3:03 QStringList sl; + sl.reserve( txt.size() ); for ( int i = 0; i < txt.size(); i += 2 ) { sl << txt.mid( i, ( i + 2 > txt.size() ) ? -1 : 2 ); @@ -593,7 +594,7 @@ QList QgsAuthCertUtils::certificateUsageTypes( } QList certconsts = qcacert.constraints(); - Q_FOREACH ( QCA::ConstraintType certconst, certconsts ) + Q_FOREACH ( const QCA::ConstraintType& certconst, certconsts ) { if ( certconst.known() == QCA::KeyCertificateSign ) { diff --git a/src/core/auth/qgsauthconfig.cpp b/src/core/auth/qgsauthconfig.cpp index ed38aaf22ed..8c2b7c115a1 100644 --- a/src/core/auth/qgsauthconfig.cpp +++ b/src/core/auth/qgsauthconfig.cpp @@ -285,7 +285,7 @@ const QgsPkiBundle QgsPkiBundle::fromPkcs12Paths( const QString &bundlepath, if ( cert_chain.size() > 1 ) { QList ca_chain; - Q_FOREACH ( QCA::Certificate ca_cert, cert_chain ) + Q_FOREACH ( const QCA::Certificate& ca_cert, cert_chain ) { if ( ca_cert != cert_chain.primary() ) { diff --git a/src/core/auth/qgsauthmanager.cpp b/src/core/auth/qgsauthmanager.cpp index 68a603c975d..c907dccba02 100644 --- a/src/core/auth/qgsauthmanager.cpp +++ b/src/core/auth/qgsauthmanager.cpp @@ -2328,7 +2328,7 @@ const QList QgsAuthManager::getExtraFileCAs() filecerts = QgsAuthCertUtils::certsFromFile( cafile ); } // only CAs or certs capable of signing other certs are allowed - Q_FOREACH ( QSslCertificate cert, filecerts ) + Q_FOREACH ( const QSslCertificate& cert, filecerts ) { if ( !allowinvalid.toBool() && !cert.isValid() ) { diff --git a/src/core/composer/qgscomposerlegend.cpp b/src/core/composer/qgscomposerlegend.cpp index e0f2f888dc9..85a4943f72f 100644 --- a/src/core/composer/qgscomposerlegend.cpp +++ b/src/core/composer/qgscomposerlegend.cpp @@ -235,10 +235,10 @@ QString QgsComposerLegend::wrapChar() const {return mSettings.wrapChar(); } int QgsComposerLegend::columnCount() const { return mSettings.columnCount(); } void QgsComposerLegend::setColumnCount( int c ) { mSettings.setColumnCount( c ); } -int QgsComposerLegend::splitLayer() const { return mSettings.splitLayer(); } +bool QgsComposerLegend::splitLayer() const { return mSettings.splitLayer(); } void QgsComposerLegend::setSplitLayer( bool s ) { mSettings.setSplitLayer( s ); } -int QgsComposerLegend::equalColumnWidth() const { return mSettings.equalColumnWidth(); } +bool QgsComposerLegend::equalColumnWidth() const { return mSettings.equalColumnWidth(); } void QgsComposerLegend::setEqualColumnWidth( bool s ) { mSettings.setEqualColumnWidth( s ); } diff --git a/src/core/composer/qgscomposerlegend.h b/src/core/composer/qgscomposerlegend.h index 649f4d4d944..bc5d9fc471e 100644 --- a/src/core/composer/qgscomposerlegend.h +++ b/src/core/composer/qgscomposerlegend.h @@ -150,10 +150,10 @@ class CORE_EXPORT QgsComposerLegend : public QgsComposerItem int columnCount() const; void setColumnCount( int c ); - int splitLayer() const; + bool splitLayer() const; void setSplitLayer( bool s ); - int equalColumnWidth() const; + bool equalColumnWidth() const; void setEqualColumnWidth( bool s ); void setComposerMap( const QgsComposerMap* map ); diff --git a/src/core/composer/qgscomposermap.cpp b/src/core/composer/qgscomposermap.cpp index 5acd9c6a100..32bab16e90e 100644 --- a/src/core/composer/qgscomposermap.cpp +++ b/src/core/composer/qgscomposermap.cpp @@ -1425,6 +1425,7 @@ bool QgsComposerMap::readXML( const QDomElement& itemElem, const QDomDocument& d { QDomElement layerSetElem = layerSetNodeList.at( 0 ).toElement(); QDomNodeList layerIdNodeList = layerSetElem.elementsByTagName( "Layer" ); + layerSet.reserve( layerIdNodeList.size() ); for ( int i = 0; i < layerIdNodeList.size(); ++i ) { const QDomElement& layerIdElement = layerIdNodeList.at( i ).toElement(); diff --git a/src/core/dxf/qgsdxfexport.cpp b/src/core/dxf/qgsdxfexport.cpp index bdc9d54191c..75b8971f6f7 100644 --- a/src/core/dxf/qgsdxfexport.cpp +++ b/src/core/dxf/qgsdxfexport.cpp @@ -4127,7 +4127,7 @@ QString QgsDxfExport::layerName( const QString &id, const QgsFeature &f ) const QString QgsDxfExport::dxfEncoding( const QString &name ) { - Q_FOREACH ( QByteArray codec, QTextCodec::availableCodecs() ) + Q_FOREACH ( const QByteArray& codec, QTextCodec::availableCodecs() ) { if ( name != codec ) continue; diff --git a/src/core/geometry/qgscurvepolygonv2.cpp b/src/core/geometry/qgscurvepolygonv2.cpp index e5039dd339d..9b523cc9678 100644 --- a/src/core/geometry/qgscurvepolygonv2.cpp +++ b/src/core/geometry/qgscurvepolygonv2.cpp @@ -358,7 +358,9 @@ QgsPolygonV2* QgsCurvePolygonV2::surfaceToPolygon() const QgsPolygonV2* polygon = new QgsPolygonV2(); polygon->setExteriorRing( exteriorRing()->curveToLine() ); QList interiors; - for ( int i = 0, n = numInteriorRings(); i < n; ++i ) + int n = numInteriorRings(); + interiors.reserve( n ); + for ( int i = 0; i < n; ++i ) { interiors.append( interiorRing( i )->curveToLine() ); } @@ -681,6 +683,7 @@ double QgsCurvePolygonV2::vertexAngle( const QgsVertexId& vertex ) const { if ( !mExteriorRing || vertex.ring < 0 || vertex.ring >= 1 + mInteriorRings.size() ) { + //makes no sense - conversion of false to double! return false; } diff --git a/src/core/geometry/qgscurvepolygonv2.h b/src/core/geometry/qgscurvepolygonv2.h index 5c94780701d..68471baf90c 100644 --- a/src/core/geometry/qgscurvepolygonv2.h +++ b/src/core/geometry/qgscurvepolygonv2.h @@ -100,7 +100,7 @@ class CORE_EXPORT QgsCurvePolygonV2: public QgsSurfaceV2 virtual int vertexCount( int /*part*/ = 0, int ring = 0 ) const override; virtual int ringCount( int /*part*/ = 0 ) const override { return ( mExteriorRing != 0 ) + mInteriorRings.size(); } - virtual int partCount() const override { return ringCount() > 0; } + virtual int partCount() const override { return ringCount() > 0 ? 1 : 0; } virtual QgsPointV2 vertexAt( const QgsVertexId& id ) const override; protected: diff --git a/src/core/geometry/qgscurvev2.h b/src/core/geometry/qgscurvev2.h index e7fd9ce3aad..c6c15d2ba8c 100644 --- a/src/core/geometry/qgscurvev2.h +++ b/src/core/geometry/qgscurvev2.h @@ -92,8 +92,8 @@ class CORE_EXPORT QgsCurveV2: public QgsAbstractGeometryV2 QgsAbstractGeometryV2* segmentize() const override; virtual int vertexCount( int /*part*/ = 0, int /*ring*/ = 0 ) const override { return numPoints(); } - virtual int ringCount( int /*part*/ = 0 ) const override { return numPoints() > 0; } - virtual int partCount() const override { return numPoints() > 0; } + virtual int ringCount( int /*part*/ = 0 ) const override { return numPoints() > 0 ? 1 : 0; } + virtual int partCount() const override { return numPoints() > 0 ? 1 : 0; } virtual QgsPointV2 vertexAt( const QgsVertexId& id ) const override; }; diff --git a/src/core/geometry/qgsgeometry.cpp b/src/core/geometry/qgsgeometry.cpp index 77018b0750c..6331ceffed0 100644 --- a/src/core/geometry/qgsgeometry.cpp +++ b/src/core/geometry/qgsgeometry.cpp @@ -1415,6 +1415,7 @@ QList QgsGeometry::asGeometryCollection() const if ( gc ) { int numGeom = gc->numGeometries(); + geometryList.reserve( numGeom ); for ( int i = 0; i < numGeom; ++i ) { geometryList.append( new QgsGeometry( gc->geometryN( i )->clone() ) ); @@ -1683,7 +1684,7 @@ int QgsGeometry::vertexNrFromVertexId( const QgsVertexId& id ) const { if ( !d || !d->geometry ) { - return false; + return -1; } QList< QList< QList< QgsPointV2 > > > coords; @@ -1911,6 +1912,7 @@ QgsPolyline QgsGeometry::smoothLine( const QgsPolyline& polyline, const unsigned for ( unsigned int iteration = 0; iteration < iterations; ++iteration ) { QgsPolyline outputLine = QgsPolyline(); + outputLine.reserve( 2 * ( result.count() - 1 ) ); for ( int i = 0; i < result.count() - 1; i++ ) { const QgsPoint& p1 = result.at( i ); @@ -1933,6 +1935,7 @@ QgsPolygon QgsGeometry::smoothPolygon( const QgsPolygon& polygon, const unsigned for ( unsigned int iteration = 0; iteration < iterations; ++iteration ) { QgsPolyline outputRing = QgsPolyline(); + outputRing.reserve( 2 * ( resultRing.count() - 1 ) + 1 ); for ( int i = 0; i < resultRing.count() - 1; ++i ) { const QgsPoint& p1 = resultRing.at( i ); diff --git a/src/core/geometry/qgsgeometry.h b/src/core/geometry/qgsgeometry.h index 996493e3930..9c03f495b95 100644 --- a/src/core/geometry/qgsgeometry.h +++ b/src/core/geometry/qgsgeometry.h @@ -575,7 +575,7 @@ class CORE_EXPORT QgsGeometry public: Error() : message( "none" ), hasLocation( false ) {} explicit Error( QString m ) : message( m ), hasLocation( false ) {} - Error( QString m, QgsPoint p ) : message( m ), location( p ), hasLocation( true ) {} + Error( QString m, const QgsPoint& p ) : message( m ), location( p ), hasLocation( true ) {} QString what() { return message; } QgsPoint where() { return location; } diff --git a/src/core/geometry/qgsgeometryeditutils.cpp b/src/core/geometry/qgsgeometryeditutils.cpp index 4aa9967d3e2..6ee1961427a 100644 --- a/src/core/geometry/qgsgeometryeditutils.cpp +++ b/src/core/geometry/qgsgeometryeditutils.cpp @@ -42,6 +42,7 @@ int QgsGeometryEditUtils::addRing( QgsAbstractGeometryV2* geom, QgsCurveV2* ring } else if ( multiGeom ) { + polygonList.reserve( multiGeom->numGeometries() ); for ( int i = 0; i < multiGeom->numGeometries(); ++i ) { polygonList.append( dynamic_cast< QgsCurvePolygonV2* >( multiGeom->geometryN( i ) ) ); diff --git a/src/core/geometry/qgsgeos.cpp b/src/core/geometry/qgsgeos.cpp index 74977c07c70..ddb7c3fe57c 100644 --- a/src/core/geometry/qgsgeos.cpp +++ b/src/core/geometry/qgsgeos.cpp @@ -561,6 +561,7 @@ int QgsGeos::splitLinearGeometry( GEOSGeometry* splitLine, QList( clone() ); + return clone(); } diff --git a/src/core/pal/rtree.hpp b/src/core/pal/rtree.hpp index d12fad62065..b597f903ddd 100644 --- a/src/core/pal/rtree.hpp +++ b/src/core/pal/rtree.hpp @@ -970,7 +970,7 @@ namespace pal { ASSERT( a_node ); - int firstTime = true; + bool firstTime = true; Rect rect; InitRect( &rect ); diff --git a/src/core/qgsconditionalstyle.cpp b/src/core/qgsconditionalstyle.cpp index 9baa6b09a0d..54f0fd355eb 100644 --- a/src/core/qgsconditionalstyle.cpp +++ b/src/core/qgsconditionalstyle.cpp @@ -88,6 +88,7 @@ bool QgsConditionalLayerStyles::readXml( const QDomNode &node ) QDomElement fieldel = nodelist.at( i ).toElement(); QString fieldName = fieldel.attribute( "fieldname" ); QDomNodeList stylenodelist = fieldel.toElement().elementsByTagName( "style" ); + styles.reserve( stylenodelist.count() ); for ( int i = 0;i < stylenodelist.count(); i++ ) { QDomElement styleElm = stylenodelist.at( i ).toElement(); diff --git a/src/core/qgsdiagramrendererv2.cpp b/src/core/qgsdiagramrendererv2.cpp index 8c5071d2b1c..5af2ce23d4a 100644 --- a/src/core/qgsdiagramrendererv2.cpp +++ b/src/core/qgsdiagramrendererv2.cpp @@ -548,6 +548,7 @@ void QgsLinearlyInterpolatedDiagramRenderer::writeXML( QDomElement& layerElem, Q QList< QgsLayerTreeModelLegendNode* > QgsDiagramSettings::legendItems( QgsLayerTreeLayer* nodeLayer ) const { QList< QgsLayerTreeModelLegendNode * > list; + list.reserve( categoryLabels.size() ); for ( int i = 0 ; i < categoryLabels.size(); ++i ) { QPixmap pix( 16, 16 ); diff --git a/src/core/qgsdistancearea.cpp b/src/core/qgsdistancearea.cpp index de0d6307696..970a3194922 100644 --- a/src/core/qgsdistancearea.cpp +++ b/src/core/qgsdistancearea.cpp @@ -369,6 +369,7 @@ double QgsDistanceArea::measurePerimeter( const QgsGeometry* geometry ) const const QgsMultiSurfaceV2* multiSurf = dynamic_cast( geomV2 ); if ( multiSurf ) { + surfaces.reserve(( surf ? 1 : 0 ) + multiSurf->numGeometries() ); for ( int i = 0; i < multiSurf->numGeometries(); ++i ) { surfaces.append( static_cast( multiSurf->geometryN( i ) ) ); @@ -376,7 +377,6 @@ double QgsDistanceArea::measurePerimeter( const QgsGeometry* geometry ) const } double length = 0; - QList pointList; QList::const_iterator surfaceIt = surfaces.constBegin(); for ( ; surfaceIt != surfaces.constEnd(); ++surfaceIt ) { diff --git a/src/core/qgshistogram.cpp b/src/core/qgshistogram.cpp index 250a148fa96..0bee53c301f 100644 --- a/src/core/qgshistogram.cpp +++ b/src/core/qgshistogram.cpp @@ -83,6 +83,7 @@ QList QgsHistogram::binEdges( int bins ) const double binWidth = ( mMax - mMin ) / bins; QList edges; + edges.reserve( bins + 1 ); edges << mMin; double current = mMin; for ( int i = 0; i < bins; ++i ) diff --git a/src/core/qgslabelsearchtree.cpp b/src/core/qgslabelsearchtree.cpp index 3dce5bd385f..ecb73e87a9f 100644 --- a/src/core/qgslabelsearchtree.cpp +++ b/src/core/qgslabelsearchtree.cpp @@ -79,6 +79,7 @@ bool QgsLabelSearchTree::insertLabel( LabelPosition* labelPos, int featureId, co labelPos->getBoundingBox( c_min, c_max ); QVector cornerPoints; + cornerPoints.reserve( 4 ); for ( int i = 0; i < 4; ++i ) { cornerPoints.push_back( QgsPoint( labelPos->getX( i ), labelPos->getY( i ) ) ); diff --git a/src/core/qgslegendsettings.h b/src/core/qgslegendsettings.h index 9b2d11bc029..675f68e3a41 100644 --- a/src/core/qgslegendsettings.h +++ b/src/core/qgslegendsettings.h @@ -70,10 +70,10 @@ class CORE_EXPORT QgsLegendSettings int columnCount() const { return mColumnCount; } void setColumnCount( int c ) { mColumnCount = c;} - int splitLayer() const { return mSplitLayer; } + bool splitLayer() const { return mSplitLayer; } void setSplitLayer( bool s ) { mSplitLayer = s;} - int equalColumnWidth() const { return mEqualColumnWidth; } + bool equalColumnWidth() const { return mEqualColumnWidth; } void setEqualColumnWidth( bool s ) { mEqualColumnWidth = s;} QColor fontColor() const {return mFontColor;} diff --git a/src/core/qgsmaplayerlegend.cpp b/src/core/qgsmaplayerlegend.cpp index b4b131a552d..ecf76231a78 100644 --- a/src/core/qgsmaplayerlegend.cpp +++ b/src/core/qgsmaplayerlegend.cpp @@ -79,6 +79,7 @@ static QList _makeNodeOrder( QgsLayerTreeLayer* nodeLayer ) int numNodes = _originalLegendNodeCount( nodeLayer ); QList order; + order.reserve( numNodes ); for ( int i = 0; i < numNodes; ++i ) order << i; return order; @@ -287,7 +288,7 @@ QList QgsDefaultPluginLayerLegend::createLayerTree return nodes; typedef QPair XY; - Q_FOREACH ( XY item, symbologyList ) + Q_FOREACH ( const XY& item, symbologyList ) { nodes << new QgsSimpleLegendNode( nodeLayer, item.first, QIcon( item.second ) ); } diff --git a/src/core/qgspoint.h b/src/core/qgspoint.h index 38dfe5f9ade..7c1401a44ec 100644 --- a/src/core/qgspoint.h +++ b/src/core/qgspoint.h @@ -215,7 +215,7 @@ class CORE_EXPORT QgsPoint //! Assignment QgsPoint & operator=( const QgsPoint &other ); - QgsVector operator-( QgsPoint p ) const { return QgsVector( m_x - p.m_x, m_y - p.m_y ); } + QgsVector operator-( const QgsPoint& p ) const { return QgsVector( m_x - p.m_x, m_y - p.m_y ); } QgsPoint &operator+=( const QgsVector &v ) { *this = *this + v; return *this; } QgsPoint &operator-=( const QgsVector &v ) { *this = *this - v; return *this; } QgsPoint operator+( const QgsVector &v ) const { return QgsPoint( m_x + v.x(), m_y + v.y() ); } diff --git a/src/core/qgsvectorlayer.h b/src/core/qgsvectorlayer.h index f0ff8281c95..f72947c21f4 100644 --- a/src/core/qgsvectorlayer.h +++ b/src/core/qgsvectorlayer.h @@ -678,7 +678,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer struct RangeData { RangeData() { mMin = QVariant( 0 ); mMax = QVariant( 5 ); mStep = QVariant( 1 );} - RangeData( QVariant theMin, QVariant theMax, QVariant theStep ) + RangeData( const QVariant& theMin, const QVariant& theMax, const QVariant& theStep ) : mMin( theMin ), mMax( theMax ), mStep( theStep ) {} QVariant mMin; diff --git a/src/core/qgsvectorlayerimport.cpp b/src/core/qgsvectorlayerimport.cpp index 882211ae2f9..36e1b3712f7 100644 --- a/src/core/qgsvectorlayerimport.cpp +++ b/src/core/qgsvectorlayerimport.cpp @@ -215,7 +215,7 @@ QgsVectorLayerImport::importLayer( QgsVectorLayer* layer, { const QgsCoordinateReferenceSystem* outputCRS; QgsCoordinateTransform* ct = 0; - int shallTransform = false; + bool shallTransform = false; if ( layer == NULL ) { diff --git a/src/core/raster/qgsrasterfilewriter.cpp b/src/core/raster/qgsrasterfilewriter.cpp index 03b0e7e5f1b..14c4ac58651 100644 --- a/src/core/raster/qgsrasterfilewriter.cpp +++ b/src/core/raster/qgsrasterfilewriter.cpp @@ -335,6 +335,7 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeDataRaster( int iterRows = 0; QList blockList; + blockList.reserve( nBands ); for ( int i = 1; i <= nBands; ++i ) { iter->startRasterRead( i, nCols, nRows, outputExtent ); diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp index c95b42faf16..c0c4a1670c8 100644 --- a/src/core/raster/qgsrasterlayer.cpp +++ b/src/core/raster/qgsrasterlayer.cpp @@ -1438,6 +1438,7 @@ bool QgsRasterLayer::readXml( const QDomNode& layer_node ) QDomNodeList rangeList = bandElement.elementsByTagName( "noDataRange" ); + myNoDataRangeList.reserve( rangeList.size() ); for ( int j = 0; j < rangeList.size(); ++j ) { QDomElement rangeElement = rangeList.at( j ).toElement(); diff --git a/src/core/raster/qgsrasterprojector.cpp b/src/core/raster/qgsrasterprojector.cpp index cc0e23daf10..3d042db8924 100644 --- a/src/core/raster/qgsrasterprojector.cpp +++ b/src/core/raster/qgsrasterprojector.cpp @@ -692,7 +692,9 @@ void QgsRasterProjector::insertRows( const QgsCoordinateTransform* ct ) { QList myRow; QList myLegalRow; - for ( int c = 0; c < mCPCols; c++ ) + myRow.reserve( mCPCols ); + myLegalRow.reserve( mCPCols ); + for ( int c = 0; c < mCPCols; ++c ) { myRow.append( QgsPoint() ); myLegalRow.append( false ); diff --git a/src/core/raster/qgsrastershader.cpp b/src/core/raster/qgsrastershader.cpp index f12f05f0832..cb708120104 100644 --- a/src/core/raster/qgsrastershader.cpp +++ b/src/core/raster/qgsrastershader.cpp @@ -178,6 +178,7 @@ void QgsRasterShader::readXML( const QDomElement& elem ) QColor itemColor; QDomNodeList itemNodeList = colorRampShaderElem.elementsByTagName( "item" ); + itemList.reserve( itemNodeList.size() ); for ( int i = 0; i < itemNodeList.size(); ++i ) { itemElem = itemNodeList.at( i ).toElement(); diff --git a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp index fa14e37ad61..ad218f8c297 100644 --- a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp +++ b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp @@ -522,6 +522,7 @@ QgsSymbolV2List QgsCategorizedSymbolRendererV2::symbols( QgsRenderContext &conte { Q_UNUSED( context ); QgsSymbolV2List lst; + lst.reserve( mCategories.count() ); for ( int i = 0; i < mCategories.count(); i++ ) lst.append( mCategories[i].symbol() ); return lst; @@ -697,6 +698,7 @@ QgsLegendSymbologyList QgsCategorizedSymbolRendererV2::legendSymbologyItems( QSi { QgsLegendSymbologyList lst; int count = categories().count(); + lst.reserve( count ); for ( int i = 0; i < count; i++ ) { const QgsRendererCategoryV2& cat = categories()[i]; diff --git a/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp b/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp index f5485c69cc5..382f0e47528 100644 --- a/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp +++ b/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp @@ -683,6 +683,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa else { QgsPolyline line; + line.reserve( 40 ); double stepsize = 2 * M_PI / 40; for ( int i = 0; i < 39; ++i ) { diff --git a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp index 35a2c39bdd2..af306d4b63a 100644 --- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp +++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp @@ -549,6 +549,7 @@ QgsSymbolV2List QgsGraduatedSymbolRendererV2::symbols( QgsRenderContext &context { Q_UNUSED( context ); QgsSymbolV2List lst; + lst.reserve( mRanges.count() ); for ( int i = 0; i < mRanges.count(); i++ ) lst.append( mRanges[i].symbol() ); return lst; @@ -566,6 +567,7 @@ static QList _calcEqualIntervalBreaks( double minimum, double maximum, i QList breaks; double value = minimum; + breaks.reserve( classes ); for ( int i = 0; i < classes; i++ ) { value += step; @@ -601,6 +603,7 @@ static QList _calcQuantileBreaks( QList values, int classes ) int n = values.count(); double Xq = n > 0 ? values[0] : 0.0; + breaks.reserve( classes ); for ( int i = 1; i < classes; i++ ) { if ( n > 1 ) @@ -1167,6 +1170,7 @@ QgsLegendSymbologyList QgsGraduatedSymbolRendererV2::legendSymbologyItems( QSize { QgsLegendSymbologyList lst; int count = ranges().count(); + lst.reserve( count ); for ( int i = 0; i < count; i++ ) { const QgsRendererRangeV2& range = ranges()[i]; diff --git a/src/core/symbology-ng/qgsheatmaprenderer.h b/src/core/symbology-ng/qgsheatmaprenderer.h index 18799beaa1c..a2fab324a1d 100644 --- a/src/core/symbology-ng/qgsheatmaprenderer.h +++ b/src/core/symbology-ng/qgsheatmaprenderer.h @@ -72,7 +72,8 @@ class CORE_EXPORT QgsHeatmapRenderer : public QgsFeatureRendererV2 * @see setInvertRamp * @see colorRamp */ - double invertRamp() const { return mInvertRamp; } + bool invertRamp() const { return mInvertRamp; } + /** Sets whether the ramp is inverted * @param invert set to true to invert color ramp * @see invertRamp diff --git a/src/core/symbology-ng/qgsrendererv2.cpp b/src/core/symbology-ng/qgsrendererv2.cpp index 82380896024..3bdf54b7d2b 100644 --- a/src/core/symbology-ng/qgsrendererv2.cpp +++ b/src/core/symbology-ng/qgsrendererv2.cpp @@ -699,7 +699,7 @@ bool QgsFeatureRendererV2::willRenderFeature( QgsFeature &feat, QgsRenderContext return symbolForFeature( feat, context ) != NULL; } -void QgsFeatureRendererV2::renderVertexMarker( QPointF& pt, QgsRenderContext& context ) +void QgsFeatureRendererV2::renderVertexMarker( const QPointF &pt, QgsRenderContext& context ) { QgsVectorLayer::drawVertexMarker( pt.x(), pt.y(), *context.painter(), ( QgsVectorLayer::VertexMarkerType ) mCurrentVertexMarkerType, @@ -708,20 +708,20 @@ void QgsFeatureRendererV2::renderVertexMarker( QPointF& pt, QgsRenderContext& co void QgsFeatureRendererV2::renderVertexMarkerPolyline( QPolygonF& pts, QgsRenderContext& context ) { - Q_FOREACH ( QPointF pt, pts ) + Q_FOREACH ( const QPointF& pt, pts ) renderVertexMarker( pt, context ); } void QgsFeatureRendererV2::renderVertexMarkerPolygon( QPolygonF& pts, QList* rings, QgsRenderContext& context ) { - Q_FOREACH ( QPointF pt, pts ) + Q_FOREACH ( const QPointF& pt, pts ) renderVertexMarker( pt, context ); if ( rings ) { - Q_FOREACH ( QPolygonF ring, *rings ) + Q_FOREACH ( const QPolygonF& ring, *rings ) { - Q_FOREACH ( QPointF pt, ring ) + Q_FOREACH ( const QPointF& pt, ring ) renderVertexMarker( pt, context ); } } diff --git a/src/core/symbology-ng/qgsrendererv2.h b/src/core/symbology-ng/qgsrendererv2.h index bac4ff39ab1..abd60b6aa35 100644 --- a/src/core/symbology-ng/qgsrendererv2.h +++ b/src/core/symbology-ng/qgsrendererv2.h @@ -322,7 +322,7 @@ class CORE_EXPORT QgsFeatureRendererV2 bool drawVertexMarker ); //! render editing vertex marker at specified point - void renderVertexMarker( QPointF& pt, QgsRenderContext& context ); + void renderVertexMarker( const QPointF& pt, QgsRenderContext& context ); //! render editing vertex marker for a polyline void renderVertexMarkerPolyline( QPolygonF& pts, QgsRenderContext& context ); //! render editing vertex marker for a polygon diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.cpp b/src/core/symbology-ng/qgssymbollayerv2utils.cpp index 6b24e3b8bfe..3070f79da36 100644 --- a/src/core/symbology-ng/qgssymbollayerv2utils.cpp +++ b/src/core/symbology-ng/qgssymbollayerv2utils.cpp @@ -733,6 +733,7 @@ static QPolygonF makeOffsetGeometry( const QgsPolyline& polyline ) static QList makeOffsetGeometry( const QgsPolygon& polygon ) { QList resultGeom; + resultGeom.reserve( polygon.size() ); for ( int ring = 0; ring < polygon.size(); ++ring ) resultGeom.append( makeOffsetGeometry( polygon[ ring ] ) ); return resultGeom; @@ -793,7 +794,7 @@ QList offsetLine( QPolygonF polyline, double dist, QGis::GeometryType else if ( QGis::flatType( tempGeometry->wkbType() ) == QGis::WKBMultiLineString ) { QgsMultiPolyline tempMPolyline = tempGeometry->asMultiPolyline(); - + resultLine.reserve( tempMPolyline.count() ); for ( int part = 0; part < tempMPolyline.count(); ++part ) { resultLine.append( makeOffsetGeometry( tempMPolyline[ part ] ) ); @@ -804,7 +805,7 @@ QList offsetLine( QPolygonF polyline, double dist, QGis::GeometryType else if ( QGis::flatType( tempGeometry->wkbType() ) == QGis::WKBMultiPolygon ) { QgsMultiPolygon tempMPolygon = tempGeometry->asMultiPolygon(); - + resultLine.reserve( tempMPolygon.count() ); for ( int part = 0; part < tempMPolygon.count(); ++part ) { resultLine.append( makeOffsetGeometry( tempMPolygon[ part ] ) ); @@ -2316,7 +2317,7 @@ bool QgsSymbolLayerV2Utils::displacementFromSldElement( QDomElement &element, QP } void QgsSymbolLayerV2Utils::labelTextToSld( QDomDocument &doc, QDomElement &element, - QString label, QFont font, + QString label, const QFont& font, QColor color, double size ) { QDomElement labelElem = doc.createElement( "se:Label" ); @@ -3967,6 +3968,7 @@ QList QgsSymbolLayerV2Utils::prettyBreaks( double minimum, double maximu //double maximumBreak = end * unit; int count = end - start; + breaks.reserve( count ); for ( int i = 1; i < count + 1; i++ ) { breaks.append( minimumBreak + i * unit ); diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.h b/src/core/symbology-ng/qgssymbollayerv2utils.h index 639264e90fc..5795493b7ff 100644 --- a/src/core/symbology-ng/qgssymbollayerv2utils.h +++ b/src/core/symbology-ng/qgssymbollayerv2utils.h @@ -221,7 +221,7 @@ class CORE_EXPORT QgsSymbolLayerV2Utils static void labelTextToSld( QDomDocument &doc, QDomElement &element, QString label, - QFont font, QColor color = QColor(), double size = -1 ); + const QFont &font, QColor color = QColor(), double size = -1 ); /** Create ogr feature style string for pen */ static QString ogrFeatureStylePen( double width, double mmScaleFactor, double mapUnitsScaleFactor, const QColor& c, diff --git a/src/core/symbology-ng/qgssymbolv2.h b/src/core/symbology-ng/qgssymbolv2.h index 5aee181755b..c8732062568 100644 --- a/src/core/symbology-ng/qgssymbolv2.h +++ b/src/core/symbology-ng/qgssymbolv2.h @@ -213,7 +213,7 @@ class CORE_EXPORT QgsSymbolV2 * @note added in QGIS 2.9 * @see setClipFeaturesToExtent */ - double clipFeaturesToExtent() const { return mClipFeaturesToExtent; } + bool clipFeaturesToExtent() const { return mClipFeaturesToExtent; } QSet usedAttributes() const; diff --git a/src/core/symbology-ng/qgsvectorcolorrampv2.cpp b/src/core/symbology-ng/qgsvectorcolorrampv2.cpp index 3fce378f167..615e32694e0 100644 --- a/src/core/symbology-ng/qgsvectorcolorrampv2.cpp +++ b/src/core/symbology-ng/qgsvectorcolorrampv2.cpp @@ -340,7 +340,8 @@ QList QgsVectorRandomColorRampV2::randomColors( int count, //start hue at random angle double currentHueAngle = 360.0 * ( double )qrand() / RAND_MAX; - for ( int i = 0; i < count; i++ ) + colors.reserve( count ); + for ( int i = 0; i < count; ++i ) { //increment hue by golden ratio (approx 137.507 degrees) //as this minimises hue nearness as count increases diff --git a/src/gui/attributetable/qgsattributetablemodel.cpp b/src/gui/attributetable/qgsattributetablemodel.cpp index 6f517615cf8..57969b5afb3 100644 --- a/src/gui/attributetable/qgsattributetablemodel.cpp +++ b/src/gui/attributetable/qgsattributetablemodel.cpp @@ -450,7 +450,9 @@ QModelIndexList QgsAttributeTableModel::idToIndexList( QgsFeatureId id ) const QModelIndexList indexes; int row = idToRow( id ); - for ( int column = 0; column < columnCount(); ++column ) + int columns = columnCount(); + indexes.reserve( columns ); + for ( int column = 0; column < columns; ++column ) { indexes.append( index( row, column ) ); } diff --git a/src/gui/attributetable/qgsfeatureselectionmodel.cpp b/src/gui/attributetable/qgsfeatureselectionmodel.cpp index 27029aa95bb..af9e7cfb4b8 100644 --- a/src/gui/attributetable/qgsfeatureselectionmodel.cpp +++ b/src/gui/attributetable/qgsfeatureselectionmodel.cpp @@ -171,7 +171,9 @@ QModelIndexList QgsFeatureSelectionModel::expandIndexToRow( const QModelIndex& i if ( !model ) return indexes; - for ( int column = 0; column < model->columnCount(); ++column ) + int columns = model->columnCount(); + indexes.reserve( columns ); + for ( int column = 0; column < columns; ++column ) { indexes.append( model->index( row, column ) ); } diff --git a/src/gui/auth/qgsauthauthoritieseditor.cpp b/src/gui/auth/qgsauthauthoritieseditor.cpp index 00d3bb53794..71b1ed143a4 100644 --- a/src/gui/auth/qgsauthauthoritieseditor.cpp +++ b/src/gui/auth/qgsauthauthoritieseditor.cpp @@ -276,7 +276,7 @@ void QgsAuthAuthoritiesEditor::appendCertsToItem( QList certs, QStringList untrustedids = mCertTrustCache.value( QgsAuthCertUtils::Untrusted ); // Columns: Common Name, Serial #, Expiry Date - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { QString id( QgsAuthCertUtils::shaHexForCert( cert ) ); @@ -694,7 +694,7 @@ void QgsAuthAuthoritiesEditor::on_btnCaFile_clicked() if ( dlg->certTrustPolicy() != QgsAuthCertUtils::DefaultTrust ) { QList certs( QgsAuthManager::instance()->getExtraFileCAs() ); - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { if ( !QgsAuthManager::instance()->storeCertTrustPolicy( cert, dlg->certTrustPolicy() ) ) { diff --git a/src/gui/auth/qgsauthcertificateinfo.cpp b/src/gui/auth/qgsauthcertificateinfo.cpp index c01fce8527a..df0abd19fdb 100644 --- a/src/gui/auth/qgsauthcertificateinfo.cpp +++ b/src/gui/auth/qgsauthcertificateinfo.cpp @@ -774,7 +774,7 @@ void QgsAuthCertInfo::populateInfoDetailsSection() QStringList keyusage; QStringList extkeyusage; QList certconsts = mCurrentACert.constraints(); - Q_FOREACH ( QCA::ConstraintType certconst, certconsts ) + Q_FOREACH ( const QCA::ConstraintType& certconst, certconsts ) { if ( certconst.section() == QCA::ConstraintType::KeyUsage ) { diff --git a/src/gui/auth/qgsauthidentitieseditor.cpp b/src/gui/auth/qgsauthidentitieseditor.cpp index e0457865106..9273de091c3 100644 --- a/src/gui/auth/qgsauthidentitieseditor.cpp +++ b/src/gui/auth/qgsauthidentitieseditor.cpp @@ -195,7 +195,7 @@ void QgsAuthIdentitiesEditor::appendIdentitiesToItem( QList cer QBrush redb( QgsAuthGuiUtils::redColor() ); // Columns: Common Name, Serial #, Expiry Date - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { QString id( QgsAuthCertUtils::shaHexForCert( cert ) ); diff --git a/src/gui/auth/qgsauthimportidentitydialog.cpp b/src/gui/auth/qgsauthimportidentitydialog.cpp index 894309cccd4..d7eb55cbf75 100644 --- a/src/gui/auth/qgsauthimportidentitydialog.cpp +++ b/src/gui/auth/qgsauthimportidentitydialog.cpp @@ -414,7 +414,7 @@ bool QgsAuthImportIdentityDialog::validatePkiPkcs12() QList ca_certs; if ( cert_chain.size() > 1 ) { - Q_FOREACH ( QCA::Certificate ca_cert, cert_chain ) + Q_FOREACH ( const QCA::Certificate& ca_cert, cert_chain ) { if ( ca_cert != cert_chain.primary() ) { diff --git a/src/gui/auth/qgsauthserverseditor.cpp b/src/gui/auth/qgsauthserverseditor.cpp index f155cbd45a4..37203960d34 100644 --- a/src/gui/auth/qgsauthserverseditor.cpp +++ b/src/gui/auth/qgsauthserverseditor.cpp @@ -195,7 +195,7 @@ void QgsAuthServersEditor::appendSslConfigsToItem( QList QBrush redb( QgsAuthGuiUtils::redColor() ); // Columns: Common Name, Host, Expiry Date - Q_FOREACH ( QgsAuthConfigSslServer config, configs ) + Q_FOREACH ( const QgsAuthConfigSslServer& config, configs ) { QSslCertificate cert( config.sslCertificate() ); QString id( QgsAuthCertUtils::shaHexForCert( cert ) ); diff --git a/src/gui/auth/qgsauthtrustedcasdialog.cpp b/src/gui/auth/qgsauthtrustedcasdialog.cpp index 85eea121048..c9615165281 100644 --- a/src/gui/auth/qgsauthtrustedcasdialog.cpp +++ b/src/gui/auth/qgsauthtrustedcasdialog.cpp @@ -188,7 +188,7 @@ void QgsAuthTrustedCAsDialog::appendCertsToItem( QList certs, QBrush redb( QgsAuthGuiUtils::redColor() ); // Columns: Common Name, Serial #, Expiry Date - Q_FOREACH ( QSslCertificate cert, certs ) + Q_FOREACH ( const QSslCertificate& cert, certs ) { QString id( QgsAuthCertUtils::shaHexForCert( cert ) ); diff --git a/src/gui/editorwidgets/qgsrelationreferenceconfigdlg.cpp b/src/gui/editorwidgets/qgsrelationreferenceconfigdlg.cpp index 46f7763cc51..25c47f20313 100644 --- a/src/gui/editorwidgets/qgsrelationreferenceconfigdlg.cpp +++ b/src/gui/editorwidgets/qgsrelationreferenceconfigdlg.cpp @@ -146,6 +146,7 @@ QgsEditorWidgetConfig QgsRelationReferenceConfigDlg::config() if ( mFilterGroupBox->isChecked() ) { QStringList filterFields; + filterFields.reserve( mFilterFieldsList->count() ); for ( int i = 0; i < mFilterFieldsList->count(); i++ ) { filterFields << mFilterFieldsList->item( i )->data( Qt::UserRole ).toString(); diff --git a/src/gui/editorwidgets/qgsrelationreferencefactory.cpp b/src/gui/editorwidgets/qgsrelationreferencefactory.cpp index 8f3b26d5fa9..1b7ed62e2a6 100644 --- a/src/gui/editorwidgets/qgsrelationreferencefactory.cpp +++ b/src/gui/editorwidgets/qgsrelationreferencefactory.cpp @@ -53,6 +53,7 @@ QgsEditorWidgetConfig QgsRelationReferenceFactory::readConfig( const QDomElement { QStringList filterFields; QDomNodeList fieldNodes = filterNode.toElement().elementsByTagName( "field" ); + filterFields.reserve( fieldNodes.size() ); for ( int i = 0; i < fieldNodes.size(); i++ ) { QDomElement fieldElement = fieldNodes.at( i ).toElement(); diff --git a/src/gui/qgisgui.cpp b/src/gui/qgisgui.cpp index b686f2284ce..fed9a1eb5a3 100644 --- a/src/gui/qgisgui.cpp +++ b/src/gui/qgisgui.cpp @@ -87,7 +87,7 @@ namespace QgisGui { // get a list of supported output image types QMap filterMap; - Q_FOREACH ( QByteArray format, QImageWriter::supportedImageFormats() ) + Q_FOREACH ( const QByteArray& format, QImageWriter::supportedImageFormats() ) { //svg doesnt work so skip it if ( format == "svg" ) diff --git a/src/gui/qgscollapsiblegroupbox.cpp b/src/gui/qgscollapsiblegroupbox.cpp index bb8657b4b41..ed636c7491b 100644 --- a/src/gui/qgscollapsiblegroupbox.cpp +++ b/src/gui/qgscollapsiblegroupbox.cpp @@ -274,7 +274,7 @@ void QgsCollapsibleGroupBoxBasic::toggleCollapsed() { if ( grpbox->syncGroup() == syncGroup() && grpbox->isEnabled() ) { - if ( mShiftDown && grpbox == dynamic_cast( this ) ) + if ( mShiftDown && grpbox == this ) { // expand current group box on shift-click setCollapsed( false ); diff --git a/src/gui/qgsdatadefinedbutton.cpp b/src/gui/qgsdatadefinedbutton.cpp index 17dfe68b0ed..a6ed67f4521 100644 --- a/src/gui/qgsdatadefinedbutton.cpp +++ b/src/gui/qgsdatadefinedbutton.cpp @@ -643,6 +643,7 @@ void QgsDataDefinedButton::registerEnabledWidget( QWidget* wdgt ) QList QgsDataDefinedButton::registeredEnabledWidgets() { QList wdgtList; + wdgtList.reserve( mEnabledWidgets.size() ); for ( int i = 0; i < mEnabledWidgets.size(); ++i ) { wdgtList << mEnabledWidgets.at( i ); @@ -678,6 +679,7 @@ void QgsDataDefinedButton::registerCheckedWidget( QWidget* wdgt ) QList QgsDataDefinedButton::registeredCheckedWidgets() { QList wdgtList; + wdgtList.reserve( mCheckedWidgets.size() ); for ( int i = 0; i < mCheckedWidgets.size(); ++i ) { wdgtList << mCheckedWidgets.at( i ); diff --git a/src/gui/qgsexpressionbuilderwidget.cpp b/src/gui/qgsexpressionbuilderwidget.cpp index be89cf1ee63..e6cdd34241d 100644 --- a/src/gui/qgsexpressionbuilderwidget.cpp +++ b/src/gui/qgsexpressionbuilderwidget.cpp @@ -285,6 +285,7 @@ void QgsExpressionBuilderWidget::loadFieldNames( const QgsFields& fields ) QStringList fieldNames; //Q_FOREACH ( const QgsField& field, fields ) + fieldNames.reserve( fields.count() ); for ( int i = 0; i < fields.count(); ++i ) { QString fieldName = fields[i].name(); diff --git a/src/gui/qgsmanageconnectionsdialog.cpp b/src/gui/qgsmanageconnectionsdialog.cpp index 137666b6780..5b0c2395497 100644 --- a/src/gui/qgsmanageconnectionsdialog.cpp +++ b/src/gui/qgsmanageconnectionsdialog.cpp @@ -83,6 +83,7 @@ void QgsManageConnectionsDialog::doExportImport() } QStringList items; + items.reserve( selection.size() ); for ( int i = 0; i < selection.size(); ++i ) { items.append( selection.at( i )->text() ); diff --git a/src/gui/qgsmessagebar.cpp b/src/gui/qgsmessagebar.cpp index 9431f51f6bd..5b1050799a2 100644 --- a/src/gui/qgsmessagebar.cpp +++ b/src/gui/qgsmessagebar.cpp @@ -130,7 +130,7 @@ void QgsMessageBar::popItem( QgsMessageBarItem *item ) { if ( mCurrentItem ) { - QWidget *widget = dynamic_cast( mCurrentItem ); + QWidget *widget = mCurrentItem; mLayout->removeWidget( widget ); mCurrentItem->hide(); disconnect( mCurrentItem, SIGNAL( styleChanged( QString ) ), this, SLOT( setStyleSheet( QString ) ) ); diff --git a/src/gui/qgsrasterlayersaveasdialog.cpp b/src/gui/qgsrasterlayersaveasdialog.cpp index b138c2c6a5c..45a0e68b1ce 100644 --- a/src/gui/qgsrasterlayersaveasdialog.cpp +++ b/src/gui/qgsrasterlayersaveasdialog.cpp @@ -718,7 +718,9 @@ QgsRasterRangeList QgsRasterLayerSaveAsDialog::noData() const if ( ! mNoDataGroupBox->isChecked() ) return noDataList; - for ( int r = 0 ; r < mNoDataTableWidget->rowCount(); r++ ) + int rows = mNoDataTableWidget->rowCount(); + noDataList.reserve( rows ); + for ( int r = 0 ; r < rows; r++ ) { QgsRasterRange noData( noDataCellValue( r, 0 ), noDataCellValue( r, 1 ) ); noDataList.append( noData ); diff --git a/src/gui/qgsrelationmanagerdialog.cpp b/src/gui/qgsrelationmanagerdialog.cpp index 9383f241c45..bb894f29a92 100644 --- a/src/gui/qgsrelationmanagerdialog.cpp +++ b/src/gui/qgsrelationmanagerdialog.cpp @@ -126,7 +126,9 @@ QList< QgsRelation > QgsRelationManagerDialog::relations() { QList< QgsRelation > relations; - for ( int i = 0; i < mRelationsTable->rowCount(); ++i ) + int rows = mRelationsTable->rowCount(); + relations.reserve( rows ); + for ( int i = 0; i < rows; ++i ) { QgsRelation relation = mRelationsTable->item( i, 0 )->data( Qt::UserRole ).value(); // The name can be editted in the table, so apply this one diff --git a/src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp b/src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp index d1b3e732122..1b0e7e6c2d1 100644 --- a/src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp +++ b/src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp @@ -252,6 +252,7 @@ void QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked() if ( colorRamp ) { numberOfEntries = colorRamp->count(); + entryValues.reserve( colorRamp->count() ); for ( int i = 0; i < colorRamp->count(); ++i ) { double value = colorRamp->value( i ); @@ -278,6 +279,7 @@ void QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked() intervalDiff = max - min; } + entryValues.reserve( numberOfEntries ); for ( int i = 0; i < numberOfEntries; ++i ) { entryValues.push_back( currentValue ); @@ -309,6 +311,7 @@ void QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked() colorDiff = ( int )( 255 / numberOfEntries ); } + entryColors.reserve( numberOfEntries ); for ( int i = 0; i < numberOfEntries; ++i ) { QColor currentColor; @@ -319,6 +322,7 @@ void QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked() } else { + entryColors.reserve( numberOfEntries ); for ( int i = 0; i < numberOfEntries; ++i ) { int idx = mInvertCheckBox->isChecked() ? numberOfEntries - i - 1 : i; diff --git a/src/gui/symbology-ng/qgscptcitycolorrampv2dialog.cpp b/src/gui/symbology-ng/qgscptcitycolorrampv2dialog.cpp index 57340b45fab..20aa427640d 100644 --- a/src/gui/symbology-ng/qgscptcitycolorrampv2dialog.cpp +++ b/src/gui/symbology-ng/qgscptcitycolorrampv2dialog.cpp @@ -359,8 +359,7 @@ void QgsCptCityColorRampV2Dialog::on_pbtnLicenseDetails_pressed() QString path, title, copyFile, descFile; // get basic information, depending on if is color ramp or directory - QgsCptCityDataItem *item = - dynamic_cast< QgsCptCityDataItem* >( mModel->dataItem( mTreeFilter->mapToSource( mTreeView->currentIndex() ) ) ); + QgsCptCityDataItem *item = mModel->dataItem( mTreeFilter->mapToSource( mTreeView->currentIndex() ) ); if ( ! item ) return; diff --git a/src/gui/symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp b/src/gui/symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp index 08732103d12..e8d2775b020 100644 --- a/src/gui/symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp +++ b/src/gui/symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp @@ -204,6 +204,7 @@ void QgsVectorGradientColorRampV2Dialog::updatePreview() if ( groupStops->isChecked() ) { int count = treeStops->topLevelItemCount(); + stops.reserve( count ); for ( int i = 0; i < count; i++ ) { QTreeWidgetItem* item = treeStops->topLevelItem( i ); diff --git a/src/plugins/geometry_checker/ui/qgsgeometrycheckerresulttab.cpp b/src/plugins/geometry_checker/ui/qgsgeometrycheckerresulttab.cpp index 03dc6a66820..50f39a8f370 100644 --- a/src/plugins/geometry_checker/ui/qgsgeometrycheckerresulttab.cpp +++ b/src/plugins/geometry_checker/ui/qgsgeometrycheckerresulttab.cpp @@ -366,7 +366,7 @@ void QgsGeometryCheckerResultTab::highlightErrors( bool current ) { double cx = 0., cy = 0.; QgsRectangle pointExtent( errorPositions.first(), errorPositions.first() ); - foreach ( QgsPoint p, errorPositions ) + foreach ( const QgsPoint& p, errorPositions ) { cx += p.x(); cy += p.y(); diff --git a/src/plugins/grass/qgsgrassmodule.cpp b/src/plugins/grass/qgsgrassmodule.cpp index f5efcfd0400..e6c4a280b4d 100644 --- a/src/plugins/grass/qgsgrassmodule.cpp +++ b/src/plugins/grass/qgsgrassmodule.cpp @@ -105,7 +105,7 @@ QString QgsGrassModule::findExec( QString file ) #endif // Search for module - foreach ( QString path, QgsGrass::grassModulesPaths() ) + foreach ( const QString& path, QgsGrass::grassModulesPaths() ) { QString full = path + "/" + file; if ( QFile::exists( full ) ) @@ -712,7 +712,7 @@ void QgsGrassModule::run() // Print some important variables variables << "QGIS_PREFIX_PATH" << "QGIS_GRASS_CRS" << "GRASS_REGION"; - foreach ( QString v, variables ) + foreach ( const QString& v, variables ) { mOutputTextBrowser->append( v + "=" + environment.value( v ) + "
" ); } diff --git a/src/plugins/grass/qgsgrassmoduleinput.cpp b/src/plugins/grass/qgsgrassmoduleinput.cpp index d6386dcf333..ac15d62f733 100644 --- a/src/plugins/grass/qgsgrassmoduleinput.cpp +++ b/src/plugins/grass/qgsgrassmoduleinput.cpp @@ -95,7 +95,7 @@ void QgsGrassModuleInputModel::onDirectoryChanged( const QString & path ) } } - foreach ( QString dirName, dirNames ) + foreach ( const QString& dirName, dirNames ) { // Add to watcher in any case, either for WIND, cellhd or vector QString dirPath = locationPath + "/" + dirName; @@ -175,7 +175,7 @@ void QgsGrassModuleInputModel::refreshMapset( QStandardItem *mapsetItem, const Q { QStringList maps = QgsGrass::grassObjects( QgsGrass::getDefaultGisdbase() + "/" + QgsGrass::getDefaultLocation() + "/" + mapset, type ); QStringList mapNames; - foreach ( QString map, maps ) + foreach ( const QString& map, maps ) { if ( map.startsWith( "qgis_import_tmp_" ) ) { @@ -237,7 +237,7 @@ void QgsGrassModuleInputModel::reload() mLocationPath = QgsGrass::getDefaultLocationPath(); QStringList mapsets = QgsGrass::mapsets( QgsGrass::getDefaultGisdbase(), QgsGrass::getDefaultLocation() ); - foreach ( QString mapset, mapsets ) + foreach ( const QString& mapset, mapsets ) { addMapset( mapset ); } @@ -246,7 +246,7 @@ void QgsGrassModuleInputModel::reload() // Watching all dirs in location because a dir may become a mapset later, when WIND is created QStringList dirNames = locationDirNames(); - foreach ( QString dirName, dirNames ) + foreach ( const QString& dirName, dirNames ) { QString dirPath = mLocationPath + "/" + dirName; // Watch the dir in any case, WIND mabe created later @@ -769,7 +769,7 @@ QgsGrassModuleInput::QgsGrassModuleInput( QgsGrassModule *module, { int mask = 0; - foreach ( QString typeName, opt.split( "," ) ) + foreach ( const QString& typeName, opt.split( "," ) ) { mask |= QgsGrass::vectorType( typeName ); } diff --git a/src/providers/grass/qgsgrass.cpp b/src/providers/grass/qgsgrass.cpp index 4bab3e4e5cb..2b480d9bc78 100644 --- a/src/providers/grass/qgsgrass.cpp +++ b/src/providers/grass/qgsgrass.cpp @@ -1094,7 +1094,8 @@ QStringList QgsGrass::vectors( const QString& mapsetPath ) QDir d = QDir( mapsetPath + "/vector" ); d.setFilter( QDir::NoDotAndDotDot | QDir::Dirs ); - for ( unsigned int i = 0; i < d.count(); i++ ) + list.reserve( d.count() ); + for ( unsigned int i = 0; i < d.count(); ++i ) { /* if ( QFile::exists ( mapsetPath + "/vector/" + d[i] + "/head" ) ) @@ -1268,7 +1269,8 @@ QStringList QgsGrass::rasters( const QString& mapsetPath ) QDir d = QDir( mapsetPath + "/cellhd" ); d.setFilter( QDir::Files ); - for ( unsigned int i = 0; i < d.count(); i++ ) + list.reserve( d.count() ); + for ( unsigned int i = 0; i < d.count(); ++i ) { list.append( d[i] ); } @@ -1316,7 +1318,8 @@ QStringList QgsGrass::elements( const QString& mapsetPath, const QString& elem d.setFilter( QDir::Files ); } - for ( unsigned int i = 0; i < d.count(); i++ ) + list.reserve( d.count() ); + for ( unsigned int i = 0; i < d.count(); ++i ) { list.append( d[i] ); } @@ -1729,7 +1732,7 @@ QProcess *QgsGrass::startModule( const QString& gisdbase, const QString& locati QString ownedMapset = mapset; if ( ownedMapset.isEmpty() ) { - Q_FOREACH ( QString ms, mapsets( gisdbase, location ) ) + Q_FOREACH ( const QString& ms, mapsets( gisdbase, location ) ) { if ( isOwner( gisdbase, location, ms ) ) { @@ -2193,7 +2196,7 @@ void QgsGrass::insertRow( dbDriver *driver, const QString tableName, } QStringList valuesStringList; - foreach ( QVariant attribute, attributes ) + foreach ( const QVariant& attribute, attributes ) { QString valueString; diff --git a/src/providers/grass/qgsgrassimport.cpp b/src/providers/grass/qgsgrassimport.cpp index 86133c66212..1457981fc63 100644 --- a/src/providers/grass/qgsgrassimport.cpp +++ b/src/providers/grass/qgsgrassimport.cpp @@ -72,7 +72,7 @@ void QgsGrassImportProgress::onReadyReadStandardError() { // TODO: parse better progress output QString output = QString::fromLocal8Bit( mProcess->readAllStandardError() ); - Q_FOREACH ( QString line, output.split( "\n" ) ) + Q_FOREACH ( const QString& line, output.split( "\n" ) ) { QgsDebugMsg( "line = '" + line + "'" ); QString text, html; @@ -500,7 +500,9 @@ QStringList QgsGrassRasterImport::extensions( QgsRasterDataProvider* provider ) QStringList list; if ( provider && provider->bandCount() > 1 ) { - for ( int band = 1; band <= provider->bandCount(); band++ ) + int bands = provider->bandCount(); + list.reserve( bands ); + for ( int band = 1; band <= bands; ++band ) { list << QString( ".%1" ).arg( band ); } @@ -513,7 +515,7 @@ QStringList QgsGrassRasterImport::names() const QStringList list; if ( mPipe && mPipe->provider() ) { - foreach ( QString ext, extensions( mPipe->provider() ) ) + foreach ( const QString& ext, extensions( mPipe->provider() ) ) { list << mGrassObject.name() + ext; } diff --git a/src/providers/grass/qgsgrassprovidermodule.cpp b/src/providers/grass/qgsgrassprovidermodule.cpp index cac5c544532..4f883c701ed 100644 --- a/src/providers/grass/qgsgrassprovidermodule.cpp +++ b/src/providers/grass/qgsgrassprovidermodule.cpp @@ -328,7 +328,7 @@ QVectorQgsGrassLocationItem::createChildren() QDir dir( mDirPath ); QStringList entries = dir.entryList( QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name ); - foreach ( QString name, entries ) + foreach ( const QString& name, entries ) { QString path = dir.absoluteFilePath( name ); @@ -420,7 +420,7 @@ QVector QgsGrassMapsetItem::createChildren() QVector items; QStringList vectorNames = QgsGrass::vectors( mDirPath ); - Q_FOREACH ( QString name, vectorNames ) + Q_FOREACH ( const QString& name, vectorNames ) { if ( mRefreshLater ) { @@ -509,7 +509,7 @@ QVector QgsGrassMapsetItem::createChildren() //map->setCapabilities( QgsDataItem::NoCapabilities ); // disable fertility map = new QgsGrassVectorItem( this, vectorObject, mapPath ); } - foreach ( QString layerName, layerNames ) + foreach ( const QString& layerName, layerNames ) { // don't use QDir::separator(), windows work with '/' and backslash may be lost if // somewhere not properly escaped (there was bug in QgsMimeDataUtils for example) @@ -548,7 +548,7 @@ QVector QgsGrassMapsetItem::createChildren() QStringList rasterNames = QgsGrass::rasters( mDirPath ); - foreach ( QString name, rasterNames ) + foreach ( const QString& name, rasterNames ) { if ( mRefreshLater ) { @@ -571,7 +571,7 @@ QVector QgsGrassMapsetItem::createChildren() } QStringList groupNames = QgsGrass::groups( mDirPath ); - foreach ( QString name, groupNames ) + foreach ( const QString& name, groupNames ) { if ( mRefreshLater ) { @@ -819,7 +819,7 @@ bool QgsGrassMapsetItem::handleDrop( const QMimeData * data, Qt::DropAction ) // delete existing files (confirmed before in dialog) bool deleteOk = true; - foreach ( QString name, import->names() ) + foreach ( const QString& name, import->names() ) { QgsGrassObject obj( import->grassObject() ); obj.setName( name ); diff --git a/src/providers/grass/qgsgrassrasterprovider.cpp b/src/providers/grass/qgsgrassrasterprovider.cpp index 9c0c7b8bafe..9ddd0f82b59 100644 --- a/src/providers/grass/qgsgrassrasterprovider.cpp +++ b/src/providers/grass/qgsgrassrasterprovider.cpp @@ -587,7 +587,7 @@ QDateTime QgsGrassRasterProvider::dataTimestamp() const QString mapset = mGisdbase + "/" + mLocation + "/" + mMapset; QStringList dirs; dirs << "cell" << "colr"; - foreach ( QString dir, dirs ) + foreach ( const QString& dir, dirs ) { QString path = mapset + "/" + dir + "/" + mMapName; QFileInfo fi( path ); diff --git a/src/providers/grass/qgsgrassvectormap.cpp b/src/providers/grass/qgsgrassvectormap.cpp index 450d79a3609..cf82ad12f3f 100644 --- a/src/providers/grass/qgsgrassvectormap.cpp +++ b/src/providers/grass/qgsgrassvectormap.cpp @@ -613,6 +613,7 @@ QgsAbstractGeometryV2 * QgsGrassVectorMap::lineGeometry( int id ) int type = Vect_read_line( mMap, points, 0, id ); QList pointList; + pointList.reserve( points->n_points ); for ( int i = 0; i < points->n_points; i++ ) { pointList << QgsPointV2( is3d() ? QgsWKBTypes::PointZ : QgsWKBTypes::Point, points->x[i], points->y[i], points->z[i] ); @@ -664,6 +665,7 @@ QgsAbstractGeometryV2 * QgsGrassVectorMap::areaGeometry( int id ) Vect_get_area_points( mMap, id, points ); QList pointList; + pointList.reserve( points->n_points ); for ( int i = 0; i < points->n_points; i++ ) { pointList << QgsPointV2( is3d() ? QgsWKBTypes::PointZ : QgsWKBTypes::Point, points->x[i], points->y[i], points->z[i] ); @@ -680,6 +682,7 @@ QgsAbstractGeometryV2 * QgsGrassVectorMap::areaGeometry( int id ) int isle = Vect_get_area_isle( mMap, id, i ); Vect_get_isle_points( mMap, isle, points ); + pointList.reserve( points->n_points ); for ( int i = 0; i < points->n_points; i++ ) { pointList << QgsPointV2( is3d() ? QgsWKBTypes::PointZ : QgsWKBTypes::Point, points->x[i], points->y[i], points->z[i] ); diff --git a/src/providers/grass/qgsgrassvectormaplayer.cpp b/src/providers/grass/qgsgrassvectormaplayer.cpp index 2a7a87b9770..8bff3a93798 100644 --- a/src/providers/grass/qgsgrassvectormaplayer.cpp +++ b/src/providers/grass/qgsgrassvectormaplayer.cpp @@ -746,7 +746,7 @@ void QgsGrassVectorMapLayer::deleteColumn( const QgsField &field, QString &error queries << QString( "CREATE UNIQUE INDEX %1_%2 ON %1 (%2)" ).arg( mFieldInfo->table ).arg( mFieldInfo->key ); queries << "COMMIT"; // Execute one after another to get possible error - Q_FOREACH ( QString query, queries ) + Q_FOREACH ( const QString& query, queries ) { QgsDebugMsg( "query = " + query ); executeSql( query, error ); @@ -832,7 +832,8 @@ void QgsGrassVectorMapLayer::insertAttributes( int cat, const QgsFeature &featur if ( error.isEmpty() ) { QList values; - for ( int i = 0; i < mAttributeFields.size(); i++ ) + values.reserve( mAttributeFields.size() ); + for ( int i = 0; i < mAttributeFields.size(); ++i ) { values << QVariant(); } diff --git a/src/providers/ogr/qgsogrdataitems.cpp b/src/providers/ogr/qgsogrdataitems.cpp index b40b119c544..caa9d136245 100644 --- a/src/providers/ogr/qgsogrdataitems.cpp +++ b/src/providers/ogr/qgsogrdataitems.cpp @@ -198,7 +198,8 @@ QVector QgsOgrDataCollectionItem::createChildren() return children; int numLayers = OGR_DS_GetLayerCount( hDataSource ); - for ( int i = 0; i < numLayers; i++ ) + children.reserve( numLayers ); + for ( int i = 0; i < numLayers; ++i ) { QgsOgrLayerItem* item = dataItemForLayer( this, QString(), mPath, hDataSource, i ); children.append( item ); diff --git a/src/providers/postgres/qgspostgresconn.cpp b/src/providers/postgres/qgspostgresconn.cpp index 45dda1a97b8..7544f09ad69 100644 --- a/src/providers/postgres/qgspostgresconn.cpp +++ b/src/providers/postgres/qgspostgresconn.cpp @@ -1087,6 +1087,7 @@ PGresult *QgsPostgresConn::PQexecPrepared( QString stmtName, const QStringList & const char **param = new const char *[ params.size()]; QList qparam; + qparam.reserve( params.size() ); for ( int i = 0; i < params.size(); i++ ) { qparam << params[i].toUtf8(); diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp index 3689b49de44..2b113fbbf3d 100644 --- a/src/providers/postgres/qgspostgresprovider.cpp +++ b/src/providers/postgres/qgspostgresprovider.cpp @@ -1847,6 +1847,7 @@ bool QgsPostgresProvider::addFeatures( QgsFeatureList &flist ) appendGeomParam( features->constGeometry(), params ); } + params.reserve( fieldId.size() ); for ( int i = 0; i < fieldId.size(); i++ ) { int attrIdx = fieldId[i]; @@ -2432,6 +2433,7 @@ bool QgsPostgresProvider::changeGeometryValues( QgsGeometryMap & geometry_map ) QgsAttributeList QgsPostgresProvider::attributeIndexes() { QgsAttributeList lst; + lst.reserve( mAttributeFields.count() ); for ( int i = 0; i < mAttributeFields.count(); ++i ) lst.append( i ); return lst; diff --git a/src/providers/wms/qgswmsprovider.cpp b/src/providers/wms/qgswmsprovider.cpp index 82770af0435..42fb900e712 100644 --- a/src/providers/wms/qgswmsprovider.cpp +++ b/src/providers/wms/qgswmsprovider.cpp @@ -3101,7 +3101,7 @@ void QgsWmsProvider::getLegendGraphicReplyFinished( const QImage& img ) if ( ! img.isNull() ) { mGetLegendGraphicImage = img; - mGetLegendGraphicExtent = QgsRectangle( reply->property( "legendExtent" ).value() ); + mGetLegendGraphicExtent = QgsRectangle( reply->property( "legendExtent" ).toRectF() ); mGetLegendGraphicScale = reply->property( "legendScale" ).value(); #ifdef QGISDEBUG