Skip to content

Commit 036000f

Browse files
mhugentnyalldawson
authored andcommitted
Allow copy / paste with text format between different projects also for geometryless layers
1 parent dfe3acd commit 036000f

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/app/qgsclipboard.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,8 @@ QgsFeatureList QgsClipboard::stringToFeatureList( const QString &string, const Q
202202
if ( values.isEmpty() || string.isEmpty() )
203203
return features;
204204

205+
QgsFields sourceFields = retrieveFields();
206+
205207
Q_FOREACH ( const QString &row, values )
206208
{
207209
// Assume that it's just WKT for now. because GeoJSON is managed by
@@ -214,23 +216,29 @@ QgsFeatureList QgsClipboard::stringToFeatureList( const QString &string, const Q
214216
if ( fieldValues.isEmpty() )
215217
continue;
216218

217-
QgsGeometry geometry = QgsGeometry::fromWkt( fieldValues[0] );
218-
if ( geometry.isNull() )
219-
continue;
220-
221219
QgsFeature feature;
222-
feature.setFields( retrieveFields() );
220+
feature.setFields( sourceFields );
223221
feature.initAttributes( fieldValues.size() - 1 );
222+
223+
//skip header line
224+
if ( fieldValues.at( 0 ) == "wkt_geom" )
225+
{
226+
continue;
227+
}
228+
224229
for ( int i = 1; i < fieldValues.size(); ++i )
225230
{
226231
feature.setAttribute( i - 1, fieldValues.at( i ) );
227232
}
228233

234+
QgsGeometry geometry = QgsGeometry::fromWkt( fieldValues[0] );
235+
if ( !geometry.isNull() )
236+
{
237+
feature.setGeometry( geometry );
238+
}
229239

230-
feature.setGeometry( geometry );
231240
features.append( feature );
232241
}
233-
234242
return features;
235243
}
236244

0 commit comments

Comments
 (0)