2 changes: 1 addition & 1 deletion python/plugins/fTools/tools/doRandPoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ def randomize(self, inLayer, outPath, minimum, design, value):
add = ( 100.00 - 70.00 ) / len(points)
for i in points:
outFeat.setGeometry(i)
outFeat.addAttribute(0, QVariant(idVar))
outFeat.setAttribute(0, QVariant(idVar))
writer.addFeature(outFeat)
idVar = idVar + 1
count = count + add
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/fTools/tools/doRegPoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def regularize(self, bound, outPath, offset, value, gridType, inset, crs):
pGeom = QgsGeometry().fromPoint(QgsPoint(x, y))
if pGeom.intersects(bound):
outFeat.setGeometry(pGeom)
outFeat.addAttribute(0, QVariant(idVar))
outFeat.setAttribute(0, QVariant(idVar))
writer.addFeature(outFeat)
idVar = idVar + 1
x = x + pointSpacing
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/fTools/tools/doSumLines.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ def compute(self, inPoly, inLns, inField, outPath, progressBar):
length = length + distArea.measure(outGeom)
outFeat.setGeometry(inGeom)
outFeat.setAttributes(atMap)
outFeat.addAttribute(index, QVariant(length))
outFeat.setAttribute(index, QVariant(length))
writer.addFeature(outFeat)
start = start + 1
progressBar.setValue(start)
Expand Down
18 changes: 9 additions & 9 deletions python/plugins/fTools/tools/doVectorGrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ def compute( self, bound, xOffset, yOffset, polygon ):
pt2 = QgsPoint(bound.xMaximum(), y)
line = [pt1, pt2]
outFeat.setGeometry(outGeom.fromPolyline(line))
outFeat.addAttribute(0, QVariant(idVar))
outFeat.addAttribute(1, QVariant(y))
outFeat.setAttribute(0, QVariant(idVar))
outFeat.setAttribute(1, QVariant(y))
writer.addFeature(outFeat)
y = y - yOffset
idVar = idVar + 1
Expand All @@ -213,8 +213,8 @@ def compute( self, bound, xOffset, yOffset, polygon ):
pt2 = QgsPoint(x, bound.yMinimum())
line = [pt1, pt2]
outFeat.setGeometry(outGeom.fromPolyline(line))
outFeat.addAttribute(0, QVariant(idVar))
outFeat.addAttribute(1, QVariant(x))
outFeat.setAttribute(0, QVariant(idVar))
outFeat.setAttribute(1, QVariant(x))
writer.addFeature(outFeat)
x = x + xOffset
idVar = idVar + 1
Expand All @@ -238,11 +238,11 @@ def compute( self, bound, xOffset, yOffset, polygon ):
pt5 = QgsPoint(x, y)
polygon = [[pt1, pt2, pt3, pt4, pt5]]
outFeat.setGeometry(outGeom.fromPolygon(polygon))
outFeat.addAttribute(0, QVariant(idVar))
outFeat.addAttribute(1, QVariant(x))
outFeat.addAttribute(2, QVariant(x + xOffset))
outFeat.addAttribute(3, QVariant(y - yOffset))
outFeat.addAttribute(4, QVariant(y))
outFeat.setAttribute(0, QVariant(idVar))
outFeat.setAttribute(1, QVariant(x))
outFeat.setAttribute(2, QVariant(x + xOffset))
outFeat.setAttribute(3, QVariant(y - yOffset))
outFeat.setAttribute(4, QVariant(y))
writer.addFeature(outFeat)
idVar = idVar + 1
x = x + xOffset
Expand Down
19 changes: 19 additions & 0 deletions src/core/qgsfeature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ email : sherman at mrcc.com
#include "qgsgeometry.h"
#include "qgsrectangle.h"

#ifdef QGISDEBUG
#include "qgsmessagelog.h"
#include <QObject>
#endif

/** \class QgsFeature
* \brief Encapsulates a spatial feature with attributes
*/
Expand Down Expand Up @@ -167,6 +172,20 @@ void QgsFeature::initAttributes( int fieldCount )
}


bool QgsFeature::setAttribute( int idx, const QVariant &value )
{
#ifdef QGISDEBUG
if ( idx < 0 || idx >= mAttributes.size() )
{
QgsMessageLog::logMessage( QObject::tr( "Attribute index %1 out of bounds [0;%2[" ).arg( idx ).arg( mAttributes.size() ), QString::null, QgsMessageLog::WARNING );
return false;
}
#endif

mAttributes[idx] = value;
return true;
}

bool QgsFeature::setAttribute( const QString& name, QVariant value )
{
int fieldIdx = fieldNameIndex( name );
Expand Down
2 changes: 1 addition & 1 deletion src/core/qgsfeature.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class CORE_EXPORT QgsFeature
const QgsAttributes& attributes() const { return mAttributes; }
QgsAttributes& attributes() { return mAttributes; }
void setAttributes( const QgsAttributes& attrs ) { mAttributes = attrs; }
void setAttribute( int field, const QVariant& attr ) { mAttributes[field] = attr; }
bool setAttribute( int field, const QVariant& attr );
void initAttributes( int fieldCount );

/**Deletes an attribute and its value*/
Expand Down