16 Commits

Author SHA1 Message Date
Nyall Dawson
0b9fb5d6e1 [needs-docs] New gui widget QgsFontButton
A standard widget for configuring text format properties for use
with QgsTextRenderer/QgsTextFormat.

It's modelled heavily off QgsColorButton, and supports lots of nice
things like dragging formats between buttons, copying and pasting
format settings, dropping colors from color buttons, dragging colors
from font buttons to color buttons, directly setting font size
and opacity/color without having to open a dialog.
2017-07-06 19:56:39 +10:00
Nyall Dawson
21a4ac4d3a Unify label rotation with other rotation settings
Label rotation is now specified in degrees clockwise, just like
symbol rotation, map rotation, etc.

Fix #4518
2017-05-30 17:23:24 +10: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
Martin Dobias
5bdae75156 API break update + read/write context in labeling and text renderer
This enables correct loading/saving of relative paths of SVG files for background of labels
2017-05-13 18:12:04 +08:00
Matthias Kuhn
28a21209b9 [sipify] seealso 2017-04-30 16:52:05 +02:00
Nyall Dawson
455f9738dd Sipify QgsTextRenderer 2017-04-28 19:25:45 +10:00
Nyall Dawson
debe1098cb [FEATURE] Allow setting paint effects on label background shapes
Can also be useful for improving text readability through
outer glows and blurs
2017-04-28 19:25:45 +10:00
Nyall Dawson
b9f102c98d [FEATURE] Paint effect support for label buffers
Allows applying a paint effect (such as blurs) to label buffers.
Blurring label buffers is a great way to get the text readability
of a label buffer without the distracting halo effect.
2017-04-28 19:25:45 +10:00
Nyall Dawson
77e7693c48 Fix spelling errors in processing algorithm help 2017-03-25 16:23:29 +10:00
Nyall Dawson
47683fca4f [needs-docs] Rename Outline and Border -> Stroke
This change is being driven by:

- need for consistent terminology in the api. Currently there's
a confusing mix of border/outline used
- need for consistent terminology in the gui - we have a mix
of "border"/"outline"/"pen"
- bringing QGIS into line with the standard terminology used
in other graphic editing programs
2017-02-22 19:22:45 +10:00
Nyall Dawson
b7d89a73af Consolidate all render context unit conversion to single methods
within QgsRenderContext

Fix invalid conversions, update unit tests
2017-01-22 21:29:23 +10:00
Nyall Dawson
430af90cfa Remove rasterScaleFactor/setRasterScaleFactor from QgsRenderContext
These were not being used by QGIS code (always left at default 1.0
value), and removing them from the api allows us to simplify lots
of code. It also makes QgsRenderContext scaling much less confusing.
2017-01-16 16:18:58 +10:00
Harrissou Sant-anna
ef85cdcf83 Replace "eg" by "e.g." or "for example" 2016-12-30 00:03:22 +01:00
Nyall Dawson
08143475ed [FEATURE] QgsTextRenderer class for rich text rendering
Moves all the drawing code out of labeling into a new class
which just handles rendering text. This allows other parts
of the code to utilise all the advanced formatting options
that labeling supports, eg rendering text with shadows,
buffers and backgrounds.
2016-10-24 12:02:00 +10:00
Nyall Dawson
4d5e7536d9 Flip QgsPalLayerSettings to use QgsTextRenderer classes 2016-10-24 12:02:00 +10:00
Nyall Dawson
5f241d6288 Implicitly shared text settings classes 2016-10-24 12:02:00 +10:00