30 , mCacheMinMaxDirty( true )
31 , mFetchFeaturesWithoutGeom( true )
34 setEncoding( settings.value(
"/UI/encoding", QString(
"System" ) ).toString() );
44 return "Generic vector file";
61 if ( feature.
id() == featureId )
91 QList< QgsField > list;
93 for ( QMap<QString, QString>::const_iterator it = attributes.constBegin(); it != attributes.constEnd(); it++ )
96 for ( i = 0; i < types.size() && types[i].mTypeName != it.value(); i++ )
99 if ( i == types.size() )
102 list <<
QgsField( it.key(), types[i].mType, it.value() );
146 QTextCodec* ncodec = QTextCodec::codecForName( e.toLocal8Bit().data() );
153 QgsDebugMsg(
"error finding QTextCodec for " + e );
169 QStringList abilitiesList;
175 abilitiesList += tr(
"Add Features" );
181 abilitiesList += tr(
"Delete Features" );
187 abilitiesList += tr(
"Change Attribute Values" );
188 QgsDebugMsg(
"Capability: Change Attribute Values" );
193 abilitiesList += tr(
"Add Attributes" );
199 abilitiesList += tr(
"Delete Attributes" );
206 abilitiesList += tr(
"Create Spatial Index" );
212 abilitiesList += tr(
"Fast Access to Features at ID" );
218 abilitiesList += tr(
"Change Geometries" );
222 return abilitiesList.join(
", " );
231 for ( QgsFieldMap::const_iterator it = theFields.constBegin(); it != theFields.constEnd(); ++it )
233 if ( QString::compare( it->name(), fieldName, Qt::CaseInsensitive ) == 0 )
243 QMap<QString, int> resultMap;
246 QgsFieldMap::const_iterator field_it = theFields.constBegin();
247 for ( ; field_it != theFields.constEnd(); ++field_it )
249 resultMap.insert( field_it.value().name(), field_it.key() );
260 for ( uint i = 0; i < count; i++ )
283 const QList< QgsVectorDataProvider::NativeType > &types =
nativeTypes();
285 for ( QList< QgsVectorDataProvider::NativeType >::const_iterator it = types.constBegin(); it != types.constEnd(); it++ )
311 if ( !
fields().contains( index ) )
313 QgsDebugMsg(
"Warning: access requested to invalid field index: " + QString::number( index ) );
327 if ( !
fields().contains( index ) )
329 QgsDebugMsg(
"Warning: access requested to invalid field index: " + QString::number( index ) );
345 keys.append( index );
353 if ( !
set.contains( f.
attributeMap()[index].toString() ) )
359 if ( limit >= 0 && values.size() >= limit )
375 for ( QgsFieldMap::const_iterator it = flds.begin(); it != flds.end(); ++it )
377 if ( it->type() == QVariant::Int )
382 else if ( it->type() == QVariant::Double )
401 for ( QgsAttributeList::const_iterator it = keys.begin(); it != keys.end(); ++it )
403 const QVariant& varValue = attrMap[*it];
405 if ( flds[*it].type() == QVariant::Int )
407 int value = varValue.toInt();
413 else if ( flds[*it].type() == QVariant::Double )
415 double value = varValue.toDouble();
423 QString value = varValue.toString();
443 if ( !v.convert( type ) )
444 v = QVariant( QString::null );