220 Commits

Author SHA1 Message Date
Martin Dobias
53075848ce
Merge pull request #35341 from wonder-sk/vector-tile-layer
[FEATURE] Vector tile layer - part 1
2020-04-02 16:06:30 +02:00
Martin Dobias
8105ad1fe5 Initial work on vector tile layer support 2020-03-25 13:27:11 +01:00
Nyall Dawson
bab86e9af3 Start on classes for dev tool widgets and dev tool widget factory 2020-03-25 20:03:18 +10:00
Sandro Mani
84bd5797f7 Move QgsVectorLayerProperties and dependencies to GUI 2020-03-09 10:29:34 +01:00
Nyall Dawson
cd6d51181b [processing] Port some model designer graphic item internals to c++
for stability and re-usability from c++ code
2020-03-01 19:12:25 +10:00
Sandro Mani
3b9ccf375a Make it configurable whether to install the sip source files 2020-01-17 11:38:16 +01:00
Sandro Mani
d573e3be95
Merge pull request #33764 from kadas-albireo/install_sip
Install source sip files
2020-01-17 00:23:15 +01:00
Sandro Mani
666b839517 Install source sip files 2020-01-15 19:43:03 +01:00
Nyall Dawson
387787b539 Add interactive editor dialog for layout manual table items 2020-01-14 19:08:20 +13:00
Nyall Dawson
591e1a28e0 Start on GUI work 2020-01-08 16:20:43 +13:00
Nyall Dawson
d0b5a01729 [api] Add registry and interface for QgsNumericFormats
QgsNumericFormat subclasses provide a means to format a numeric value
as a string, applying various formatting options. E.g. a default
string to value formatter (included here) includes settings for
controlling the number of decimal places, whether a thousands separator
should be shown, whether a leading + sign should be shown, whether
trailing zeros should be shown.

This PR also includes a formatter for bearings, allowing various
formats of numeric bearings to be applied (e.g. control over decimal
places, etc + control over whether direction E/W suffixes are shown,
or whether values should be limited to either the +/- 180 range or
0-360 degree range)

When formatting values, a QgsNumericFormatContext class is used
to provide context. Currently, this includes the thousands and
decimal separators to apply when formatting (which are taken by
default from the user's locale).

A registry of formatters is included to allow easy addition of
other formats in future (e.g. currencies, percentages, scientific
notation, etc...) and to allow plugin based formats.

The intention is to follow this up with gui configuration widgets
for the formats, and then expose them in various places through
the qgis ui (e.g. in the range editor widget for fields, in scalebar
numbers, as an option for formatting numeric labels, etc)
2020-01-08 16:20:43 +13:00
Peter Petrik
229245ce65 fix building on macos due to missing include of spatialite 2019-12-13 12:56:07 +01:00
Nyall Dawson
d3da0e0281 Also move labeling gui files to dedicated subdirectory 2019-12-11 14:05:44 +10:00
Nyall Dawson
a8adb2d6c2 Code shuffle: move all labeling related code into src/core/labeling
So that these files are all grouped together, making it easier to locate
all the components of the labeling engine and hopefully making things
easier to navigate
2019-12-11 14:05:44 +10:00
Denis Rouzaud
8ef8efa7fb
include nlohmann/json_fwd.hpp in core source headers (#32294)
the file was manually added later to the installted headers, but not on mac

it is not possible to install a file in a Headers subfolder within a framework if the original header is not in the same cmake current directory

installing a header in a subdirectory is achieved by setting the MACOSX_PACKAGE_LOCATION property of the source file
but setting a property can only be achieved if it is in the same cmake directory (from the docs: Source file properties are visible only to targets added in the same directory [0])

[0] https://cmake.org/cmake/help/latest/command/set_source_files_properties.html
2019-10-18 09:08:12 +02:00
Denis Rouzaud
68a9ea5d70 move src/core/symbology/classification to src/core/classification 2019-09-02 09:46:40 +02:00
Denis Rouzaud
41495058d1 run sipify 2019-08-30 12:45:37 +02:00
Alessandro Pasotti
92ac7a2e93
[server] Server api and WFS3 (#10016)
Implementation of OGC API and WFS3 core draft specification
2019-08-06 16:38:21 +02:00
Nyall Dawson
b298a197e7 Start on registry 2019-07-11 13:03:12 +10:00
Nyall Dawson
fb1a610007 Early prototype of label callouts 2019-07-11 13:03:12 +10:00
Tom Elwertowski
35da038860 macOS needs path to GEOS framework for PAL 2019-06-21 07:04:11 +10:00
Alessandro Pasotti
63711510b6 Dear Qt, I love you but ...
... you are too slow and QJson API is so ugly.

Now using this wonderful json lib:
https://github.com/nlohmann/json

Results in release mode (QJson tests are not shown but
QJson was even slower than string concat).

PASS   : TestQgsJsonUtils::testExportAttributesJson(Use json)
RESULT : TestQgsJsonUtils::testExportAttributesJson():"Use json":
     0.0022 msecs per iteration (total: 75, iterations: 32768)
PASS   : TestQgsJsonUtils::testExportAttributesJson(Use old string concat)
RESULT : TestQgsJsonUtils::testExportAttributesJson():"Use old string concat":
     0.0032 msecs per iteration (total: 54, iterations: 16384)
PASS   : TestQgsJsonUtils::testExportFeatureJson(Use json)
RESULT : TestQgsJsonUtils::testExportFeatureJson():"Use json":
     0.011 msecs per iteration (total: 96, iterations: 8192)
PASS   : TestQgsJsonUtils::testExportFeatureJson(Use old string concat)
RESULT : TestQgsJsonUtils::testExportFeatureJson():"Use old string concat":
     0.015 msecs per iteration (total: 64, iterations: 4096)
PASS   : TestQgsJsonUtils::testExportGeomToJson(Use json)
RESULT : TestQgsJsonUtils::testExportGeomToJson():"Use json":
     0.76 msecs per iteration (total: 98, iterations: 128)
PASS   : TestQgsJsonUtils::testExportGeomToJson(Use old string concat)
RESULT : TestQgsJsonUtils::testExportGeomToJson():"Use old string concat":
     0.85 msecs per iteration (total: 55, iterations: 64)
PASS   : TestQgsJsonUtils::cleanupTestCase()
2019-04-18 17:04:30 +02:00
Peter Petrik
cd9a84e11c [feature] [mesh] Mesh Calculator
Similarly to raster calculator, mesh calculator can take dataset groups from current mesh layer and
combine them with various aritmentic/logical operators to new dataset group.
2019-01-14 12:32:36 +01:00
Nyall Dawson
7ccaa3df32 [FEATURE][API] Add flexible framework for custom "validity checks"
Adds a new interface QgsAbstractValidityCheck which defines
a single "check" which can be performed on a given QgsValidityCheckContext.
A new application-wide QgsValidityCheckRegistry registers
and manages instances of all known checks, and allows running
of all registered checks of a specific type at once.

Initially the framework is focused toward print layout validity
checks, but the interface has been designed to be generic enough
to allow alternative types of validity checks (e.g. project save
validity checks, processing model validity checks, etc.).

The API is designed to be used both by internal validity checks
and also to be extended by custom, organisation-specific
validity checks. E.g., for print layout validity checks we could have:
2019-01-03 04:53:07 +10:00
Nathan Woodrow
87d2da13fb
[FEATURE][needs-docs] Add new @alg decorator for nicer python processing scripts. (#8586)
@alg()
@alg.help()
@alg.input()
@alg.output()
2018-12-10 16:35:52 +10:00
Juergen E. Fischer
4464089487 auto-detect name of sip module used by PyQt5 2018-10-24 13:38:03 +02:00
Nyall Dawson
fee1f95a1c Make sip import path configurable, default to upstream path 2018-10-24 08:10:50 +10:00
Nyall Dawson
0fad3e5731 Fix build with newer sip versions
Fixes #19476
2018-10-24 08:10:50 +10:00
Salvatore Larosa
3cb9ef2294 fix build without server and 3d 2018-10-16 18:45:25 +02:00
Salvatore Larosa
20c9a5da33 add 3d module to API file 2018-10-16 12:52:48 +02:00
Martin Dobias
88cb8313c8 Python bindings for QGIS 3D library 2018-10-13 22:05:39 +02:00
Matthias Kuhn
bee5470e10
Python bindings for QgsGeometryCheck and co
Adds

 - python bindings
 - geometry check factory
 - geometry check registry
 - QgsFeedback for geometry checks (lots of potential still)
 - An IsValid geometry check
 - Splits classes into their own files
 - Decouples feature pools from the configuration context
2018-09-28 13:33:24 +02:00
Denis Rouzaud
3ceecbf806
no override in SIP 2018-09-19 20:13:29 -04:00
Matthias Kuhn
b2072d8298
Add missing sip magic 2018-09-19 13:48:47 +02:00
Juergen E. Fischer
86c3e8b8a6 fix build crashes with SIP 4.19.11 2018-07-04 23:37:52 +02:00
Denis Rouzaud
4d0d19b0f7
fix build without gui but with bindings
console and plugin installed are gui components
2018-06-28 21:55:38 +02:00
Juergen E. Fischer
212cffcab1 Port gps support to QSerialPort (byebye QExtSerialPort) 2018-06-28 17:31:01 +02:00
Denis Rouzaud
8ef0d1f7d9 [pyqgis] add missing install of __init__.py for modules 2018-06-05 03:25:47 -08:00
Nyall Dawson
bd0ec6e4e9 Don't use old policy for CMP0040
Seems no longer required in any case
2018-06-05 14:08:30 +10:00
Denis Rouzaud
1fb02e8d83 concatenate auto_additions files with python module __init__.py.in 2018-06-03 11:07:09 -08:00
Denis Rouzaud
e5b02cd2a8 use dedicated files for auto additions 2018-06-03 11:07:09 -08:00
Alexander Bruy
6cac1bdcbd use complex condition for CMake < 3.7 2018-05-28 14:20:10 +03:00
Nyall Dawson
5cf33969ae Cleaner conditional generation of pyi typehint stub files 2018-05-28 10:04:38 +10:00
Alexander Bruy
b150f41f12 fix build with SIP < 4.18 2018-05-28 10:04:38 +10:00
Nyall Dawson
e906a2c9ce [python] Generate type hint stub files
Causes sip to generate the type hinting stub (".pyi") files
alongside the generated python modules.

This allows editors like PyCharm to become aware of the
types of objects returned by functions, making the autocompletion
much more useful (e.g. by showing all the members available
for a returned type). It also fixes a bunch of incorrect
warnings highlighted in PyCharm for things like calling
static methods in a class (and, generates some new, but valid,
warnings when unexpected types are passed to functions!)

TODO: work out why PyCharm can't show the docstrings
for methods when the pyi file is present.
2018-05-24 06:56:16 +10:00
Denis Rouzaud
ff35e694bb fix (again) install of qgis.core.additions 2018-05-15 17:26:41 -04:00
Denis Rouzaud
cd34da8038
also install additions py files in their directory (#7000) 2018-05-15 05:02:08 -08:00
Denis Rouzaud
831512c98f [pyqgis] fix py files in subdirectory not correctly installed 2018-05-14 18:01:09 -04:00
Nyall Dawson
3f6e411edb Remove some redundant geos includes 2018-04-26 17:28:59 +12: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