38728 Commits

Author SHA1 Message Date
Martin Dobias
828bd384c5 Convert remaining bits where labeling was configured using setCustomProperty() 2017-05-16 14:25:32 +08:00
Martin Dobias
21f03bc11c Clean up reading/writing of labeling configuration in vector layers
Historically the configuration used to be stored in layer's custom properties, but that does not scale
beyond simple rendering and so rule-based labeling introduced storage of configuration natively in XML elements.
That left us with two different ways of reading/writing labeling configurations. This work makes all configuration
to use native XML elements.

To keep compatibility of 2.x projects, reading of configuration from custom properties is preserved.

This commit also adds Python APIs for direct manipulation of labeling configuration through vector layer's
setLabeling() and labeling() calls.
2017-05-16 14:25:32 +08:00
Nyall Dawson
7e345a7327 Merge pull request #4561 from nyalldawson/proj_thread2
Avoid using thread unsafe proj API - approach 2
2017-05-16 15:12:42 +10:00
Nyall Dawson
5201eb251e Optimise storage/retrieval of projPJ objects 2017-05-16 13:31:35 +10:00
Nyall Dawson
e51737e6e4 Use thread safe proj API in all other code paths 2017-05-16 13:20:45 +10:00
Nyall Dawson
4396e5325d Utilise thread safe proj API within QgsCoordinateTransform
Avoids unpredictable behavior when transforms are being
conducted in background threads, such as map renders.

Refs #11441

This commit:
1. Uses thread_local storage for projCtx objects, to ensure
that every thread correctly has its own projCtx context.

2. Refactors QgsCoordinateTransformPrivate so that the
projPJ source and destination objects are instead stored
in a map (by projCtx). This allows transforms to be
transparently performed using the correct projPJ objects
for the particular thread in which the transform is being
conducted. This approach avoids expensive detachment
of QgsCoordinateTransformPrivate, and allows a single
QgsCoordinateTransformPrivate to be safely utilised
by QgsCoordinateTransform objects in different threads.
2017-05-16 13:20:45 +10:00
Nyall Dawson
ae492abcf4 Split qgscoordinatetransform_p into .h/cpp 2017-05-16 13:20:45 +10:00
Nyall Dawson
59c974379e Fix missing name and progress for feature counter task 2017-05-16 13:09:36 +10:00
Nyall Dawson
a517c683cd Ensure created memory layers have unique source
Sometimes the layer source is used for "looser" comparison then
layer ID
2017-05-16 11:29:49 +10:00
Nyall Dawson
c484b505ce Link native to core on OSX only 2017-05-16 07:23:46 +10:00
Denis Rouzaud
e455b157b5 [sipify] do not comment global operators
fix class/struct level detection
sipify qgsmargins.qgs
2017-05-15 21:55:10 +02:00
Matthias Kuhn
3f85b050dc fix bad copy paste 2017-05-15 21:55:10 +02:00
Matthias Kuhn
d15bd8dd22 No docstrings for out-of-class functions 2017-05-15 21:55:10 +02:00
Matthias Kuhn
5c2deb4010 Doxymentation 2017-05-15 21:55:10 +02:00
Matthias Kuhn
d4edbc0fdb Unsipify QgsMargins 2017-05-15 21:55:10 +02:00
Matthias Kuhn
7ac276e713 No copy of QgsLabelSearchTree is allowed 2017-05-15 21:55:10 +02:00
Matthias Kuhn
df6d60fcc1 Fix sip errors 2017-05-15 21:55:10 +02:00
Matthias Kuhn
9e059ed77e Fix sip errors 2017-05-15 21:55:10 +02:00
Matthias Kuhn
6ad5a58c84 Spelling 2017-05-15 21:55:10 +02:00
Matthias Kuhn
2abb1465c4 [sipify] Another batch of sip 2017-05-15 21:55:10 +02:00
Denis Rouzaud
922b162b86 attachment widget: data defined button for document type 2017-05-15 17:57:25 +02:00
Nyall Dawson
87052a7712 Merge pull request #4558 from nyalldawson/native-lib-mac
Add OS native interface lib, with objective-c++ interface to Mac Cocoa libraries, v3
2017-05-15 18:24:26 +10:00
Nyall Dawson
8f44a29ae7 Reintroduce core/native link 2017-05-15 17:38:28 +10:00
Nyall Dawson
2831f842e6 Fix compilation 2017-05-15 16:54:44 +10:00
Nyall Dawson
ae97c333d6 Revert "Port algorithm countVisibleParameters to c++"
This reverts commit c3c694f8ccfbe0b64df14365f950f5895968a66a.
2017-05-15 10:24:38 +10:00
Nyall Dawson
6efe160a65 Move QgsNative instance from app->QgsGui singleton
This allows gui widgets to utilise native platform interfaces.
Additionally attaching the instance to QgsGui allows QgsNative
to become a QObject in future if required and for use
of signals/slots in the native interfaces.
2017-05-15 09:56:52 +10:00
Mathieu Pellerin
a4b7af7fad Use millimeters when declaring QPrinter page size
(This is needed to allow to set a resolution with the printer used
by the map renderer)
2017-05-15 06:23:29 +07:00
Nyall Dawson
cbc2a3df64 Indentation 2017-05-15 09:15:09 +10:00
Nyall Dawson
6971e9da23 Fix build 2017-05-15 09:15:09 +10:00
Matthias Kuhn
d1593caed7 Create a virtual QgsNative base class for platform services
A QgsNative base class is added, that offers default implementations for
a platform interface. These methods can be overridded for the current
platform at compile time to allow specialized handling for integration
with the current system.
2017-05-15 09:15:09 +10:00
Larry Shaffer
f6bd7b3b58 Add OS native interface lib, with objective-c++ interface to Mac Cocoa libraries 2017-05-15 09:15:09 +10:00
Nyall Dawson
f8f7d60cf0 Merge pull request #4514 from nyalldawson/gui_instance
Make a new global QgsGui singleton
2017-05-15 09:03:55 +10:00
Nyall Dawson
c3c694f8cc Port algorithm countVisibleParameters to c++ 2017-05-15 08:44:28 +10:00
Nyall Dawson
a8b10a2fd9 Update indentation 2017-05-15 07:57:57 +10:00
Nyall Dawson
14882058ba Sipify update 2017-05-15 07:34:14 +10:00
Nyall Dawson
ac94345331 Rename QgisGui to QgsGuiUtils
Better reflects what this namespace contains, and replaces the
non-standard Qgis prefix with the Qgs standard
2017-05-15 07:33:52 +10:00
Nyall Dawson
436844b205 QgsMapLayerActionRegistry is no longer a singleton
Moved the global instance to QgsGui::QgsMapLayerActionRegistry()
2017-05-15 07:32:38 +10:00
Nyall Dawson
a86b93e957 QgsLayerTreeEmbeddedWidgetRegistry is no longer a singleton
Moved the global instance to QgsGui::layerTreeEmbeddedWidgetRegistry()
2017-05-15 07:32:01 +10:00
Nyall Dawson
711f6dcc50 QgsShortcutsManager is no longer a singleton
Move the global instance to QgsGui::shortcutsManager()
2017-05-15 07:32:01 +10:00
Nyall Dawson
4a5c9a7ba3 Make a new global QgsGui singleton
Move QgsEditorWidgetRegistry from being a singleton itself to
instead being a member of the QgsGui singleton
2017-05-15 07:32:01 +10:00
Nyall Dawson
280ca31972 Merge pull request #4401 from nyalldawson/processing_params
c++ framework for parameters and running algorithms
2017-05-15 07:08:07 +10:00
Tim Sutton
7af73b3881 Change browser context menu item text for adding layer to 'Add select… (#4459)
* Change browser context menu item text for adding layer to 'Add selected layer(s) to canvas'

* Use title case for Add Selected Layer(s) to Canvas browser context menu text
2017-05-14 18:07:09 +03:00
Martin Dobias
24e06a4941 Remove unused mAnnotationForm member + getter/setter from QgsVectorLayer 2017-05-14 17:41:14 +08:00
Mathieu Pellerin
33b6fab131 Fix crash when saving as PDF with dpi != 96 2017-05-14 11:00:00 +07:00
Martin Dobias
0ccaba7a70 Path resolver instead of project singleton in edit form config and svg annotation 2017-05-14 10:34:01 +08:00
Martin Dobias
2857ef59dc Merge pull request #4426 from wonder-sk/fix-relative-paths-svg
Fix relative paths to SVG files in embedded projects
2017-05-14 09:24:33 +08:00
Martin Dobias
590526ee32 Another trial to fix mac tests on travis 2017-05-14 00:33:57 +08:00
Mathieu Pellerin
93c59f4e25 [raster] fix raster blending (fixes #16546) 2017-05-13 22:19:35 +07:00
Martin Dobias
40f683d64f Trying to fix mac test for QgsProject 2017-05-13 23:16:58 +08:00
Martin Dobias
a4717e2e6d Fixes to relative paths read/write in composer picture and arrow items 2017-05-13 22:55:03 +08:00