3232 Commits

Author SHA1 Message Date
Nyall Dawson
75a5d5dda1 Remove unused skipAttributeCreation option in QgsVectorLayerExporter::exportLayer 2017-05-12 08:03:23 +10:00
Nyall Dawson
384369c3c4 Rename QgsVectorLayerImport to QgsVectorLayerExporter
Since the majority of users of this class will be exporting
an existing map layer to a data provider, the QgsVectorLayerImport
name is misleading and suggests that this class is designed
just to bring layers "into" QGIS.

Explicitly naming the class "Exporter" should help API users
discover this class.

Also cleanup API and improve docs
2017-05-12 08:02:51 +10:00
Matthias Kuhn
95597e3bab Add tests for QgsTask::waitForFinished() 2017-05-11 12:42:26 +02:00
lbartoletti
13c1318a5f New geometry class: QgsRegularPolygon (#4502) 2017-05-10 22:23:28 +10:00
Alessandro Pasotti
55cb855003 Use a valid polygon in attr-table test 2017-05-10 12:06:48 +02:00
Alessandro Pasotti
212acc120c Merge pull request #4503 from boundlessgeo/attributetable-fixes
[bugfix] Fixes attribute table duplicated rows #15974
2017-05-09 15:13:10 +02:00
Nyall Dawson
a4e3c8336e Merge pull request #4520 from nyalldawson/raster_combo_box
QgsRasterBandComboBox
2017-05-09 20:36:33 +10:00
Nyall Dawson
ea4143bbdc Don't disable band combo when only one band is present 2017-05-09 19:45:19 +10:00
Nyall Dawson
e4a94bc457 Add unit tests for QgsRasterBandComboBox 2017-05-09 19:23:08 +10:00
Nyall Dawson
6aa10c6817 [processing] Cleanup some layer/writer related handling
Ensure that layers created by QgsProcessingUtils::createFeatureSink
can always be retrieved using QgsProcessingUtils::mapLayerFromString
2017-05-09 15:29:41 +10:00
Nyall Dawson
3cd3e5d378 Allow storing QgsProperty in QVariant 2017-05-09 12:22:30 +10:00
Juergen E. Fischer
135882259c include metadata headers in install (followup 3a965e6d) 2017-05-08 13:21:23 +02:00
Nyall Dawson
29c87de679 [needs-docs][composer] Remove Render/Cache modes from composer maps
Make maps invalidate cache whenever layer order changes. Cache mode
is now identical to Render mode, so  all mode switching has been
removed from composer maps. This should greatly simplify the learning
curve and usability of composer maps.
2017-05-08 19:31:55 +10:00
Nyall Dawson
5e3b903955 [needs-docs][composer] Remove Rectangle mode from composer maps
No longer required - the Cache mode is now performant enough
that we don't have to rely on the old rectangle preview
when desiring responsive composers
2017-05-08 17:10:07 +10:00
Nyall Dawson
91b046a743 [FEATURE] Asyncronously render composer map previews without blocking UI
Makes working with compositions much more responsive and enjoyable!

Inspired by manisandro's commit in Sourcepole's fork
2017-05-08 17:09:42 +10:00
Nyall Dawson
01f12221ad Fix intermittent QgsMapLayerStore test failure 2017-05-08 12:03:46 +10:00
Nyall Dawson
40319df357 Revert "Asyncronously render composer map previews " 2017-05-07 10:25:45 +10:00
Nyall Dawson
bcca7af5c3 Merge pull request #4495 from nyalldawson/writer
[processing] Port vector.createVectorWriter to c++
2017-05-07 09:31:27 +10:00
Nyall Dawson
54e208b974 Merge pull request #4494 from nyalldawson/composer_async
Asyncronously render composer map previews
2017-05-07 09:22:47 +10:00
Nyall Dawson
a8a3cc82ed [processing] Port vector.createVectorWriter to c++
This implements an improved version of vector.createVectorWriter
in QgsProcessingUtils. The improved version relies on the
core class QgsVectorLayerImport to create empty layers,
which:
- reduces duplicate code and reuses the mature QgsVectorLayerImport
routines
- avoids manual conversion of field types to destination provider
field types
- potentially allows any writable provider to be used as a feature
sink for algorithms (e.g. output direct to MSSQL/Oracle/db2). This
should work now - it just needs exposing via UI.
2017-05-07 08:02:53 +10:00
Alessandro Pasotti
3c4567d0af [server] More WMS tests for FILTER parameter with bool operators and UTF8
Forward port from 2.18 commit 8fd4fc60697738a986207
2017-05-06 10:45:10 +02:00
Alessandro Pasotti
a46e9a56c9 [server] Fail test when expected and reference have different number of lines 2017-05-06 10:44:36 +02:00
Nyall Dawson
ba46c8750e Avoid crash on exit of PyQgsPalLabelingComposer test 2017-05-06 15:05:47 +10:00
Nyall Dawson
8d03642387 Merge pull request #4487 from nyalldawson/memory
Move memory provider to core
2017-05-06 14:13:15 +10:00
Nyall Dawson
b5ae888b60 Merge pull request #4478 from nyalldawson/layer_store
Split off map layer storage handling from QgsProject to QgsMapLayerStore
2017-05-06 13:00:05 +10:00
Nyall Dawson
ba2fdf00ab Rename some QgsProviderRegistry methods to clarify that they are factories
- provider() was renamed to createProvider()
- selectWidget() was renamed to createSelectionWidget()
- providerLibrary() was renamed to createProviderLibrary()
2017-05-06 12:28:06 +10:00
Nyall Dawson
767cb12c2a Add QgsMemoryProviderUtils.createMemoryLayer for easy creation
of new memory layers from QgsFields/QgsCoordinateReferenceSystem/etc

Since memory provider cannot use QgsVectorLayerImport we need
another centeralized function for creating new memory layers
without the need to manually create the uri string.
2017-05-06 12:05:12 +10:00
Alessandro Pasotti
3784892079 [bugfix] Fixes attribute table duplicated rows #15974 2017-05-05 17:32:23 +02:00
Nyall Dawson
75f5a5fbcf Add spatial and temporal extents to metadata 2017-05-04 07:29:56 +10:00
Nyall Dawson
bf2ce3d8c9 Add history item to metadata 2017-05-04 07:29:56 +10:00
Nyall Dawson
b2f52d8a71 Add license section to metadata 2017-05-04 07:29:56 +10:00
Nyall Dawson
5600395e29 Add metadata validator
Adds a new abstract base class QgsMetadataValidator for validating
metadata against standard schemas.

Initially only QgsNativeMetadataValidator for validating against
the native QGIS metadata schema is implemented.

In future this could be extended with Dublin Core, ISO 19115
validators, etc...
2017-05-04 07:29:56 +10:00
Nyall Dawson
cc3d67a207 Add temporary methods to save layer metadata in layer custom properties
Allows temporary persistance of metadata inside a single project. Will
be removed when later work packages from the metadata project are
merged.
2017-05-04 07:29:56 +10:00
Nyall Dawson
40fccf550a Implement metadata store for map layers
QgsLayerMetadata handles storage and management of the metadata
for a QgsMapLayer. This class is an internal QGIS format with a common
metadata structure, which allows for code to access the metadata properties for
layers in a uniform way.

The metadata store is designed to be compatible with the Dublin Core metadata
specifications, and will be expanded to allow compatibility with ISO specifications
in future releases. However, the QGIS internal schema does not represent a superset
of all existing metadata schemas and accordingly conversion from specific
metadata formats to QgsLayerMetadata may result in a loss of information.

This class is designed to follow the specifications detailed in
the schema definition available at resources/qgis-resource-metadata.xsd
within the QGIS source code.
2017-05-04 07:29:56 +10:00
Nyall Dawson
998ca4a8ce Preparation for metadata directory 2017-05-04 07:29:56 +10: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
32ff0921f4 Merge pull request #4491 from nyalldawson/proxy_sink
Add QgsProxyFeatureSink
2017-05-04 07:21:20 +10:00
Nyall Dawson
96ad51138b Add method to retrieve sink 2017-05-03 19:50:38 +10:00
Alessandro Pasotti
569593b79a [server] Python plugins API cleanup part 3
This removes the handleRequest method that returns the
headers and body as byte array.

This superceeded by the implementation that takes a
request and response instances.
2017-05-03 10:58:18 +02:00
Alessandro Pasotti
2afcad279d [server] Python plugins API cleanup part 2
This part adds the headers as an optional argument
to the request and start using the handleRequest(request, response)
call in the python tests.

Some additional tests are also added.
2017-05-03 10:58:18 +02:00
Alessandro Pasotti
b7d6c1e59e [server] Python plugins API cleanup part 1
This is the first step to a cleaner and consitent API
for server plugin.

It also adds some new tests for the base request and
response classes
2017-05-03 10:57:39 +02:00
Nyall Dawson
ce4f93b410 Add method to retrieve corresponding OGR driver from a file extension 2017-05-03 17:13:05 +10:00
Nyall Dawson
fde71cf9b2 Add QgsProxyFeatureSink
A simple feature sink which proxies feature addition on to another feature sink.

This class is designed to allow factory methods which always return new QgsFeatureSink
objects. Since it is not always possible to create an entirely new QgsFeatureSink
(e.g. if the feature sink is a layer or a layer's data provider), a new
QgsProxyFeatureSink can instead be returned which forwards features on to
the destination sink. The proxy sink can be safely deleted without affecting
the destination sink.
2017-05-03 16:56:37 +10:00
nirvn
747c2e2bf3 rotated world file support in QgsMapSettingsUtils::worldFileContent() 2017-05-03 10:39:17 +07:00
Nyall Dawson
32e06f486a Make QgsProcessingContext::temporaryLayerStore() return a pointer to store 2017-05-03 08:43:31 +10:00
Nyall Dawson
d2ce9c69b1 Allow access to project's internal layer store, remove some duplicate code 2017-05-03 07:35:47 +10:00
Nyall Dawson
c575c4a869 Fix build 2017-05-03 07:09:44 +10:00
Nyall Dawson
f81971daa4 Fix failing tests 2017-05-03 07:09:44 +10:00
Nyall Dawson
10b1896a3c Move old map layer registry tests into QgsProject tests 2017-05-03 07:09:44 +10:00
Nyall Dawson
26afb2e5b6 Use QgsMapLayerStore within QgsProject 2017-05-03 07:09:44 +10:00