Dear QGIS Gurus:
I have a written a plugin that updates an attribute of a shape file and it 
tells me it ran fine and yet, I am not able to see the changes in the attribute 
table once the program finishes. I am using QGIS 1.6 Copiapo on Windows). I am 
compiling using the 1.7 source, but I have tried using the trunk version and it 
does not seem to matter at all.

I can see the edit starting with all the extent selected and it finishes 
without an error. I also write a log file before and after the feature 
attribute change and the feature values change correctly.
What am i doing wrong?

The simplified code is posted below,

           QgsVectorDataProvider* vProvider = theVectorLayer->dataProvider();
           theVectorLayer->select(vProvider->attributeIndexes(), 
           theVectorLayer->extent(), true, false);
           QgsFeature currentFeature;
           QgsGeometry* currentGeometry = 0;
                bool blnEdit = theVectorLayer->startEditing();
           QgsAttributeList attrList = vProvider->attributeIndexes();
      vProvider->select(attrList);
      blnFeat = vProvider->nextFeature(currentFeature);
      QgsAttributeMap atMap1;
            vProvider->createSpatialIndex();
      QgsAttributeList attrList = vProvider->attributeIndexes();
      vProvider->select(attrList);
      blnFeat = vProvider->nextFeature(currentFeature);
      QgsAttributeMap atMap1;
      QString featureAttributesString;
                int ltsVal = 10;
                int ltsFldIdx = 1;
      QVariant fld0 ;
      while(blnFeat)
      {
                       atMap1 = currentFeature.attributeMap();
         fld0 = atMap1.value(0);
         currentGeometry = currentFeature.geometry();
         if(!currentGeometry)
         {
            continue;
         } 
         else
         {
            currentFeature.changeAttribute(ltsFldIdx,QVariant(ltsVal));         
   
         }
         blnFeat = vProvider->nextFeature(currentFeature);
      }
      blnAttrAdded = theVectorLayer->commitChanges();
      theVectorLayer->endEditCommand();
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to