This reverts commit b4a85471978b59b129c0299dfd14c1af00fef743.
The template based approach was not cross-platform friendly. When
cross-compiling for Android it caused a new instance of every singleton per
shared library.
Mostly using the magic statics pattern instead now:
See http://stackoverflow.com/a/11711991/2319028
Important things to remember for crash on exit:
* QgsNetworkAccessManager needs to die before QApplication
* QgsMapLayerRegistry needs to be emptied before QgsProviderRegistry goes away
And finally:
DON'T USE SINGLETONS!
They are for "one and only one" and not for "happens to be only one" situations.
* fix build on windows
* fix grass build on precise (using cmake <2.8.8, ie. without INCLUDE_DIRECTORIES target property)
* support desktop & browser shortcut for GRASS 6/7 in OSGeo4W nightly build
The graduated symbol renderer now allows to use varying size instead of
varying color.
The classification remains the same an tabbed size/color in the gui
allows the use to choose one type or the other.
This option (located under the symbol advanced menu) disables the
automatic clipping of lines/polygons to the canvas extent. In
some cases this clipping results in unfavourable symbology (eg
centroid fills where the centroid must always be the actual
feature's centroid). (fix#9757)
This commit adds a new framework for implementing paint effects, which
modify the results of QPainter operations to apply visual effects
such as drop shadows and blurs.
The initial implementation allows for effects to be applied to entire
layers and individual symbol layers.
Included are a drop shadow, inner shadow, blur, inner glow, outer glow,
colorise and transform effect. A "stack" effect is also implemented
which allows other paint effects to be combined in various ways.
Sponsored by hundreds of generous kickstarter contributors!
Masks set which pixels in the control image should be tested and
an optional tolerance for each pixel. This is done via the colors
in the mask image - white pixels are ignored, black must be an
exact match, and gray levels represent the maximum color component
deviation for that pixel.
This should replace the fragile anomaly images, in that a single
control image with a suitable mask will not be susceptible to
antialiasing differences, etc.
A new script (scripts/generate_test_mask_image.py) is included which
either creates a new mask or modifies an existing mask to handle
an acceptable rendered image.
Ultimately, masking along with multi render checks for specific
platform differences should be flexible enough to meet our needs.