117 Commits

Author SHA1 Message Date
Nyall Dawson
0df1056dd4 [FEATURE] QgsSpatialIndexKDBush
A very fast static spatial index for 2D points based on a flat KD-tree,
using https://github.com/mourner/kdbush.hpp

Compared to QgsSpatialIndex, this index:
 - supports single point features only (no multipoints)
 - is static (features cannot be added or removed from the index after construction)
 - is much faster!
 - supports true "distance based" searches, i.e. return all points within a radius
from a search point
2018-07-07 10:54:47 +10:00
Peter Petrik
69fa26183f fix travis errors 2018-05-30 12:26:36 +02:00
Peter Petrik
7af2e68e23 misc optimization for geometries and fixes 2018-05-30 10:06:23 +02:00
Martin Dobias
94f56b61a8 Build/test fixes 2018-05-16 17:26:59 -04:00
Peter Petrik
3fc99c04c1 code cleanup 2018-05-16 17:02:35 +02:00
Peter Petrik
aea3dccea7 [FEATURE] Rendering of vector data on mesh layers
Rudimentary support of rendering of vector data (e.g. velocity) on mesh map layers.
Rendering can be adjusted by QgsMeshRenderer*Settings. Only in Python
API, no GUI widgets for styling present.
2018-05-16 12:56:35 +02:00
Denis Rouzaud
847f0e1829 adapt sipify scripts and test to place auto generated sip files in dedicated folder 2018-05-14 10:44:11 -04:00
Denis Rouzaud
648562d2b7 do not expose task and make it thread safe 2018-05-07 08:20:59 -04:00
Martin Dobias
ade216d02d
Merge pull request #6820 from PeterPetrik/QgsMeshLayer_1_mesh
[FEATURE] QgsMeshLayer part 1: Reading raw mesh
2018-04-25 09:02:24 +02:00
Nyall Dawson
c6a50fe772 Add QgsLineSegment2D class, for simple 2d line segments which
consist of just a 2D start and end point
2018-04-24 10:07:51 +12:00
Loïc Bartoletti
0bacf0ff16 - Add some methods in QgsVector3D
- Move QgsVector3D from 3d to core
- Use QgsVector3D instead of QVector3D
2018-04-21 08:16:14 +10:00
Peter Petrik
d1240119ef use QStringLiteral 2018-04-20 09:38:39 +02:00
Peter Petrik
50422a1165 [FEATURE] QgsMeshLayer part 1: Reading raw mesh
Introducting MDAL, QgsMeshLayer, mesh data providers (mesh_memory, mdal)
to read and visualize raw meshes: vertices and faces. Support dragging
2dm files from browser on canvas to visualize 2dm meshes.
Support for QgsMeshLayer in Python API.
2018-04-19 10:50:33 +02:00
Martin Dobias
a30646f1cb Introduced QgsProjectStorage and QgsProjectStorageRegistry
This is going to be used as an abstraction of how/where project
files are stored.
2018-04-07 12:58:01 +02:00
Nyall Dawson
e2f09fa662 Add a QgsTask for fetching network content
Provides a simple method for fetching remote HTTP
content in a QgsTask. Utilises QgsNetworkContentFetcher so
Url redirects and progress reports are automatically handled.
2018-04-02 08:42:21 +10:00
Nyall Dawson
d293c5d0a0 Code shuffle to avoid duplicate code 2018-03-22 16:13:30 +11:00
Nyall Dawson
09aca080ec Add new QgsProjectMetadata metadata class
For storing QgsProject metadata. Contains all metadata items
from QgsMetadataBase, plus adds author and creation datetime
metadata items.
2018-03-22 16:13:30 +11:00
Nyall Dawson
5cf2656ace Split metadata into two classes
A new base class QgsMetadataBase has been split off QgsLayerMetadata,
containing all non-layer specific metadata items.

This allows us to reuse the common metadata settings for other
non-layer items, e.g. projects.
2018-03-22 16:13:30 +11:00
Matthias Kuhn
ff7b831b9d Remove private implementations from python bindings 2018-03-07 09:00:33 +11:00
Matthias Kuhn
1fd74234b4 Add processing parameter type definitions 2018-03-07 09:00:33 +11:00
Blottiere Paul
1a5e03f667 Fix sip binding 2018-03-02 09:43:26 +00:00
Blottiere Paul
8873e9a020 Fix sip binding 2018-03-02 09:43:26 +00:00
Blottiere Paul
957e92c847 Add async model for virtual layers 2018-03-02 09:43:26 +00:00
Denis Rouzaud
713bfd3452 add Q_ENUM for QgsRasterProjector::Precision 2018-02-20 02:00:57 -09:00
Denis Rouzaud
1a1b197ced use Qgsettins::enumSettingValue where possible 2018-02-19 05:55:09 -09:00
Denis Rouzaud
f1123501d4 make QgsTolerance a Q_GADGET
to use Q_ENUM
2018-02-17 09:33:35 -09:00
Denis Rouzaud
91e98ef5a5 run sip_include.sh 2018-02-17 11:16:47 -04:00
Alessandro Pasotti
287f82286b Add QgsRangeFieldFormatter to bindings 2018-02-02 08:10:54 +01:00
Nyall Dawson
30fe9917ce Sipify 2018-01-16 13:57:14 +10:00
Nyall Dawson
741afdca55 Add provider suite test for thread safety of provider getFeatures()
Hammers providers by iterating through features from multiple threads
2018-01-16 13:57:14 +10:00
Nyall Dawson
3d36653f55 Code shuffle 2018-01-08 13:35:15 +10:00
Nyall Dawson
db906273b5 Drop all composer classes from Python bindings 2018-01-08 13:35:15 +10:00
Nyall Dawson
6f2c63f3e5 Add a common base class for print layouts and reports, and adapt
QgsLayoutManager to suit
2018-01-05 11:15:04 +10:00
Nyall Dawson
d8af098d83 Code shuffle and cleanup 2018-01-05 11:15:04 +10:00
Nyall Dawson
1ea5a5fb98 [FEATURE] Reporting framework
Reports are based on the new layouts engine. They consist of multiple
nested sections. Each individual section (and the report itself)
can have an optional header and footer (which are themselves layouts,
and can consist of multiple pages!).

Two different types of sections are implemented so far:
- a standard section, which has a single, static body layout. This
can be used to embed static layouts mid way through a report
- a "field group" section, which repeats its body layout for
every feature in a layer. The features are sorted by the selected
grouping feature (with an option for ascending/descending sort).
If a field group section has child sections (e.g. another field
group section with a different field, then only features
with unique values for the group feature are iterated over.
This allows nested reports, e.g.

Report
- Country: Australia
    - State: NSW
        - Town: Sydney
        - Town: Woolongong
    - State: QLD
        - Town: Beerburrum
        - Town: Brisbane
        - Town: Emerald
- Country: NZ
    - State: ... etc

In this example country, state or town groups can have their
own headers and footers which will be inserted in the report.

Reports are configured through a new panel in the layout designer
dialog, which is shown when editing a report (created through
the Layout Manager Dialog). The organizer allows for adding
(and removing) sections to the report, and for selecting which
layout (e.g. headers, footers, bodies) to edit within the
layout designer.
2018-01-05 11:15:04 +10:00
Nyall Dawson
5bc543af6a Refactor layout context
Split render context from reporting context
2018-01-05 11:15:04 +10:00
Nyall Dawson
e169c219b3 Work on modernizing atlas 2018-01-05 11:15:03 +10:00
Nyall Dawson
e6a6db89a1 Add QgsLayout subclass, QgsPrintLayout
A print layout is a layout with an atlas
2018-01-05 11:15:03 +10:00
Nyall Dawson
bd7784cd00 Start working on restoring atlas 2018-01-05 11:15:03 +10:00
Nyall Dawson
25c3e135b0 Move datum transform structs out to their own header, to avoid
need to include private header file
2017-12-18 21:19:02 +10:00
Matthias Kuhn
7735019921 Revert "Add missing sip file"
This reverts commit c487ee6be0992931031ae930f698c19344f06061.
2017-12-18 09:30:41 +01:00
Matthias Kuhn
c487ee6be0 Add missing sip file 2017-12-18 09:29:16 +01:00
Nyall Dawson
cb693a72f9 Move caching to QgsCoordinateTransform
and remove no longer required QgsCoordinateTransformCache singleton
2017-12-15 14:14:08 +10:00
Nyall Dawson
018bfb49f9 Remove QgsDatumTransformStore
and port usage over to QgsCoordinateTransformContext instead
2017-12-15 14:13:52 +10:00
Nyall Dawson
8a0bd08e07 Start on QgsCoordinateTransformContext
Stores settings related to the correct datum transforms to use
when performing a coordinate transform.
2017-12-15 14:11:38 +10:00
Nyall Dawson
d0475cb042 Travis doesn't like me fixing him 2017-12-15 10:58:47 +10:00
Etienne Trimaille
5c28ecab8f update HTML data provider metadata (#5700)
* update HTML data provider metadata for grass, gdal and ams

* update HTML data provider metadata for WMS and WCS

* move HTML bullet list to QgsHtmlUtils
2017-12-13 13:29:41 +02:00
Nyall Dawson
21fe98d5f0 Sipify 2017-12-04 13:10:28 +10:00
Alessandro Pasotti
19b062c304
Merge pull request #5766 from Gustry/file_downloader
Display the downloaded size in QgsFileDownloaderDialog
2017-12-01 14:30:34 +01:00
Nyall Dawson
bcc1b91b74
Merge pull request #5717 from nyalldawson/layout_next4
[layouts] Port/adapt all remaining item types
2017-12-01 13:43:58 +11:00