73 Commits

Author SHA1 Message Date
Denis Rouzaud
c604d2dda6 run sipify 2017-12-15 22:13:44 -04:00
Denis Rouzaud
f2b3ed0a9b run sipify 2017-12-15 11:12:19 -04:00
Nyall Dawson
83cdd8468b Use GDAL metadata to determine feature styles support
GDAL >= 2.3 only
2017-12-11 19:24:31 +11:00
Denis Rouzaud
e48cf98edb run sipify 2017-12-06 07:19:50 -04:00
Nyall Dawson
2e6d125a6f Use =default, =delete where possible 2017-11-11 15:22:19 +10:00
Nyall Dawson
8499d7fcef Add option to hide non-spatial formats from driver lists
And hide non-spatial formats from geometry checker available formats
2017-11-06 07:49:31 +10:00
Nyall Dawson
fe0566000e More QPair API removal 2017-11-06 07:34:01 +10:00
Nyall Dawson
a4ef7e42c7 Avoid use of QPair and instead use a struct 2017-11-06 07:22:04 +10:00
Nyall Dawson
dc341d2047 Add flags to QgsVectorFileWriter methods which return lists of drivers
Initially only flag available is whether to sort drivers by
recommended order. The recommended order puts GPKG first and
SHP second, then leaves the rest alphabetical.

This fixes a few instances in the QGIS gui where these recommended formats
are not listed first.
2017-11-06 07:22:04 +10:00
Jachym Cepicky
28daa1a0e0 Adding more default SHP->GPKG changes 2017-10-19 15:45:04 +02:00
Matthias Kuhn
3043e85ea1
Return error message from QgsVectorFileWriter 2017-09-18 18:32:42 +02:00
Nyall Dawson
2640626e17 Rename addFeature member in QgsVectorFileWriter to avoid clash 2017-06-15 17:04:27 +10:00
Nyall Dawson
fc339f9ac5 Add a flag argument to QgsFeatureSink::addFeatures
Flags can be used to control how features are added to the sink.

For now, there's only a single flag available - FastInsert.
When FastInsert is set, faster inserts will be use at the cost
of updating the passed features to reflect changes made at the
provider.

This includes skipping the update of the passed feature IDs
to match the resulting feature IDs for the feature within
the data provider.

Individual sink subclasses may or may not choose to respect
this flag, depending on whether or not skipping this update
represents a significant speed boost for the operation.

QgsVectorLayer always ignores the flag - feature ids are
required for the featureAdded signal to be correctly emitted,
and it's expected that performance critical applications will
add features directly to a data provider instead of
via QgsVectorLayer's edit buffer.
2017-06-15 17:04:27 +10:00
Nyall Dawson
326e442548 Fix crash when saving vector layer in background task 2017-06-10 18:53:01 +10:00
Nyall Dawson
1be5fbda96 More consistency across scale API
Use a real scale widget for point displacement label scale
2017-06-09 10:26:01 +10:00
Denis Rouzaud
1df3c51606 sipify batch 2017-05-22 10:12:08 +02:00
Nyall Dawson
87e2aab0f3 Merge pull request #4492 from nyalldawson/driver_from_extension
Add method to retrieve corresponding OGR driver from a file extension
2017-05-04 07:21:57 +10:00
Nyall Dawson
ce4f93b410 Add method to retrieve corresponding OGR driver from a file extension 2017-05-03 17:13:05 +10:00
Denis Rouzaud
85f3b81b55 remove double spaces in sip files
fix indentation
2017-05-03 08:02:14 +02:00
Denis Rouzaud
7d459149c7 [sip] align missing bits and replace nullptr by 0 2017-05-02 08:09:53 +02:00
Denis Rouzaud
93971d5ed3 [sip] align pointer and reference in blacklisted files
this will facilitate sip diff checking
2017-05-01 17:49:43 +02:00
Nyall Dawson
1280779617 Don't force use of In,Out in QgsFeatureSink methods 2017-04-26 11:32:34 +10:00
Nyall Dawson
8d598337f3 QgsVectorFileWriter is a QgsFeatureSink 2017-04-26 11:32:34 +10:00
Nyall Dawson
26495dbd81 [processing] Move dataobjects.getSupportedOutputVectorLayerExtensions
to QgsVectorFileWriter
2017-04-03 15:41:32 +10:00
Denis Rouzaud
7812d4fb17 remove the-prefix from source code
this might result in variables having the same name as some methods
2017-02-21 18:14:58 +01:00
Nyall Dawson
95d000f662 [FEATURE] Background saving of vector layers
Switches the vector layer save operation to a background task
using the task manager framework. Allows layers to saved without
blocking the interface.
2017-02-13 08:30:29 +10:00
Nyall Dawson
02ea2d7703 Fix typos 2016-11-08 09:05:47 +10:00
Nyall Dawson
44289084e9 Optimise passing of variables by ref/value 2016-10-24 10:36:23 +10:00
Even Rouault
34894c6f5a [FEATURE] Vector layer save as: offer file/layer overwriting, new layer creation, feature and field appending
When saving a vector layer into an existing file, depending on the capabilities
of the output driver, the user can now decide whether:
- to overwrite the whole file
- to overwrite only the target layer (layer name is now configurable)
- to append features to the existing target layer
- to append features, add new fields if there are any.

All above is available for drivers like GPKG, SpatiaLite, FileGDB, ...
For drivers like Shapefile, MapInfo .tab, feature append is also available.
2016-10-13 11:38:41 +02:00
Nyall Dawson
9bc61e77c7 [processing] Create vector files using default dataset/layer options
Fixes missing CRS when saving to GML (fix #14544)
2016-08-12 07:01:04 +10:00
Juergen E. Fischer
0688621046 scripts/replacev2.sh run 2016-08-10 12:08:52 +02:00
Matthias Kuhn
bb79d13e82 Remove deprecated Qgis::WKBType and API cleanup (#3325)
* Remove deprecated Qgis::WKBType and API cleanup

Renames QgsWKBTypes to QgsWkbTypes

Replaces usage of the enums:

* Qgis::WKBType with QgsWkbTypes::Type
* Qgis::GeometryType with QgsWkbTypes::GeometryType

Their values should be forward compatible (a fact that was already
explited up to now by casting between the types)

Renames some SSLxxx to SslXxx and URIxxx to UriXxx

* Fix build warnings and simplify type handling

* Add a fixer to rewrite imports

* The forgotten rebase conflictThe forgotten rebase conflicts

* QgsDataSourcURI > QgsDataSourceUri

* QgsWKBTypes > QgsWkbTypes

* Qgis.WKBGeom > QgsWkbTypes.Geom

* Further python fixes

* Guess what... Qgis::wkbDimensions != QgsWkbTypes::wkbDimensions

* Fix tests

* Python 3 updates

* [travis] pull request caching cannot be disabled

so at least use it in r/w mode

* Fix python3 print in plugins
2016-08-04 09:10:08 +02:00
Nyall Dawson
f6b09eaee1 Add Distance*, Area*, Angle* prefixes to QgsUnitTypes enum values 2016-07-26 08:29:24 +10:00
Nyall Dawson
f6f5010131 Move QGis::UnitType to QgsUnitTypes::DistanceUnit
This change consolidates more unit handling and conversion into
QgsUnitTypes.

Additionally, UnknownUnit was renamed to UnknownDistanceUnit.
All methods which accepted QGis::UnitType parameters have been
updated to take QgsUnitTypes::DistanceUnit instead.

ALso remove the unit handling methods toLiteral, fromLiteral, tr,
fromTr, and fromUnitToUnitFactor from QGis. Their corresponding
counterparts in QgsUnitTypes should be used instead.
2016-07-25 14:47:16 +10:00
Nyall Dawson
1a2231f10c Rename QGis class to Qgis, for capitalisation consistency 2016-07-21 22:01:38 +10:00
Nyall Dawson
adafeda82a Avoid all use of QgsCoordinateTransform pointers, replace with
copies or references

Makes the code more robust, fixes leaks and avoids potential
null pointer dereferencing
2016-07-16 20:36:45 +10:00
Nyall Dawson
fd42ed3145 Use reference rather than pointer for crs in QgsVectorFileWriter
Since QgsCoordinateReferenceSystem is implicitly shared, it's a
safer approach
2016-07-15 05:57:03 +10:00
Even Rouault
3ee7d59e18 QgsVectorFileWriter::MetaData: add a compulsoryEncoding member
* Some formats require a compulsory encoding, typically UTF-8.
Change initMetadata() to indicate UTF-8 compulsory encoding for
GeoJSON, GeoRSS, GML, GPKG, GPX, KML, SQLite, SpatiaLite, FileGDB,
XLSX and ODS
* QgsVectorFileWriter::init(): make it override the user specified
encoding if the format has a compulsory encoding. And remove hard-coded
case for KML.
2016-05-19 11:38:42 +02:00
Even Rouault
038b3b7950 QgsVectorFileWriter: add capability to export displayed values of fields (typically coming from edit widgets) instead of their raw values 2016-05-14 12:33:10 +02:00
Juergen E. Fischer
99d5e42247 [FEATURE] vector file writer: allow selection of attributes to export 2016-04-03 01:56:21 +02:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +01:00
Nyall Dawson
752f6bd150 Fix classes which violate rule of three, by implementing required
copy/= operators or making them private

This revealed (and fixes) some issues, including a potential crash
using server access control (refs #13919), and a potential crash with
diagrams
2016-01-22 18:45:45 +11:00
Matthias Kuhn
e351d24a7d More types support for QgsVectorFileWriter 2016-01-12 12:58:47 +01:00
Nyall Dawson
ffebfd9bb7 [FEATURE] Allow overide of geometry type in vector save as dialog
Also allows forcing output file to be multi type, or include z
dimension.

This makes it possible to do things like save a geometryless
table WITH a geometry type, so that geometries can then be
manually added to rows. Previously this was only possible to do in
QGIS by resorting to dummy joins or other hacks.
2015-11-24 06:30:15 +11:00
Nyall Dawson
c49b5b777f Change a lot of arguments to const references in core/gui
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
2015-10-07 12:02:04 +11:00
Juergen E. Fischer
9752c468c1 indentation update 2015-07-29 11:52:14 +02:00
Juergen E. Fischer
9ceb5ceab6 sip sync 2014-11-21 01:17:21 +01:00
Juergen E. Fischer
45c0be1059 sip: remove enum constants 2014-06-02 21:52:02 +02:00
Juergen E. Fischer
c4c131ef75 sip sync 2014-05-27 23:32:42 +02:00
Martin Dobias
8ac3a94b99 Fix #8898 (optional filter extent for vector save as) 2014-03-04 17:39:30 +07:00