Skip to content
Permalink
Browse files

care for types of fid

  • Loading branch information
signedav committed Oct 22, 2018
1 parent d9fdf13 commit d1172d41065fcb4f4f6040d211a14c260f96fc9c
Showing with 7 additions and 3 deletions.
  1. +7 −3 src/core/qgsofflineediting.cpp
@@ -749,11 +749,15 @@ QgsVectorLayer *QgsOfflineEditing::copyVectorLayer( QgsVectorLayer *layer, sqlit
// NOTE: SpatiaLite provider ignores position of geometry column
// fill gap in QgsAttributeMap if geometry column is not last (WORKAROUND)
QgsAttributes attrs = f.attributes();

int column = 0;
//newAttrs have an additional attribute (fid), so we have to add a dummy
if ( containerType == GPKG && layer->dataProvider()->fields().lookupField( "fid" ) >= 0 )
int indexOfFid = layer->dataProvider()->fields().lookupField( "fid" );
if ( containerType == GPKG && ( indexOfFid == -1 || ( layer->dataProvider()->fields().at( indexOfFid ).type() != QVariant::Int
&& layer->dataProvider()->fields().at( indexOfFid ).type() != QVariant::LongLong ) ) )
{
// newAttrs (1) has an additional attribute (fid) that is (2) of the correct type
// so we have to add a dummy because otherwise it messes up with the amount of attributes
column++;
}
QgsAttributes newAttrs( attrs.count() + column );
for ( int it = 0; it < attrs.count(); ++it )
{

0 comments on commit d1172d4

Please sign in to comment.
You can’t perform that action at this time.