43 Commits

Author SHA1 Message Date
Juergen E. Fischer
d6f66ee488 fix phantom labels for (actually not) rendered feature (refs #13631) 2015-10-23 16:04:30 +02:00
Martin Dobias
249c87822f One common class for labeling configurations (QgsAbstractVectorLayerLabeling)
This is +/- equivalent of QgsFeatureRendererV2 for vector layer labels

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-24 15:48:05 +08:00
Martin Dobias
1782d1a505 [FEATURE] Rule-based labeling
Work in progress

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-24 15:48:05 +08:00
Martin Dobias
f0bc2e9b5a Use new labeling engine also with symbol-level rendering
This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-21 12:57:10 +08:00
Martin Dobias
d0fcc9557f More labeling engine refactoring
- QgsPalLabeling now internally uses new engine
- label/diagram providers can hook into rendering loop to avoid extra feature loops
- map rendering uses the new engine instead of QgsPalLabeling

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-21 12:57:09 +08:00
Martin Dobias
8100495df6 Integrate new labeling engine into the map rendering
Now used instead of QgsPalLabeling for labels/diagrams

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-21 12:57:09 +08:00
Nyall Dawson
430303dfc9 Port diagrams to expression contexts 2015-08-22 19:01:40 +10:00
Nyall Dawson
3b6f5915e7 Port iterators to expression contexts 2015-08-22 19:01:40 +10:00
Nyall Dawson
0cab6b3376 Port renderers to expression contexts 2015-08-22 19:01:40 +10:00
Nyall Dawson
2bb1c8a31b Start on implementing contexts for render operations 2015-08-22 19:01:39 +10:00
Nyall Dawson
57669e71c0 Make QgsRenderContext available to more renderer methods 2015-08-22 19:01:38 +10:00
Matthias Kuhn
abf2398880 Rule based renderer: empty rule matches all
Fix #13218
2015-08-15 09:26:50 +02:00
Matthias Kuhn
e832b2a28a Add QgsVectorLayer::fields() as alias to pendingFields()
pendingFields() is not very intuitive and leads to confusion for new developers.
2015-08-04 15:13:31 +02:00
Matthias Kuhn
e984fb00fd Remove QgsRenderOptions, return filter in separate method 2015-07-29 12:09:44 +02:00
Matthias Kuhn
5be0ee734f Remove QgsFeatureRequest::FilterRect from providers/iterators 2015-07-29 12:09:44 +02:00
Matthias Kuhn
1d7a6a4909 Rule based renderer exposes filter where clause
This filter can then be sent to the server to reduce the amount of fetched
features
2015-07-29 12:08:55 +02:00
Marco Hugentobler
9f8aa8494a Cache geometries before rendering (curved geometries are going to be segmentized) 2015-07-13 11:13:52 +02:00
Denis Rouzaud
9e3183c63f Revert "sort includes"
This reverts commit 2b7d3d3c73b50ba6dc74abec6dd652ff1b87c0ec.
2015-06-10 14:54:47 +02:00
Denis Rouzaud
2b7d3d3c73 sort includes 2015-06-10 13:59:08 +02:00
Nyall Dawson
2863f20d67 Add a const geometry getter to QgsFeature 2015-05-11 19:46:32 +10:00
Nyall Dawson
134067716d Fix diagrams not initially showing when toggling on/off layers 2015-04-09 17:50:18 +10:00
Nyall Dawson
742f3233ee [FEATURE] Paint effects for layers and symbol layers
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!
2015-03-28 20:04:50 +11:00
Nyall Dawson
727747658b [FEATURE] Live heatmap renderer
Allows for live, dynamic heatmaps for point layers. Options include
specifying heatmap radius in pixels, mm or map units, choice of
color ramp, and a slider for selecting a tradeoff between render
speed and quality.
2014-11-22 13:03:54 +11:00
Juergen E. Fischer
a57066a48d * fix cppcheck warnings
* some sip updates
* [API] fix spelling QgsMultiRenderChecker::drawBackround
* [API] fix spelling QgsSymbolLayerV2Utils::drawStippledBackround
* [API] fix spelling QgsMapSettings::layerTransfrom
2014-11-20 15:02:35 +01:00
ahuarte47
20b0d121c8 #11243: Disable simplification when OTFR transform fails 2014-10-07 02:57:26 +02:00
Juergen E. Fischer
a34240d5f9 make some rendering errors translatable 2014-08-20 12:08:07 +02:00
Martin Dobias
61c370484d Add missing license headers for new classes from MTR 2014-06-16 11:55:01 +07:00
Martin Dobias
402c0dc5c8 Use QgsDebugMsg for a debug message 2014-06-02 15:34:53 +07:00
Nyall Dawson
aaa7003d54 [composer] Don't show vector selections in composer map items (fix #7610) 2014-06-02 16:42:30 +10:00
Alvaro Huarte
83eec4ac46 Enable disabled simplification code after merge MTR (2-2)
Enable AntialiasingSimplification
2014-05-27 13:26:50 +02:00
Martin Dobias
dac4cfc2f4 Fix #10217 (misaligned markers in composer) 2014-05-22 22:22:31 +07:00
Juergen E. Fischer
b6b78ca7a4 expression: dump binary operations with brackets to break precedence (fixes #9783) 2014-03-14 18:50:53 +01:00
Martin Dobias
3a317a061e Fix #9658 (crash with diagrams) 2014-02-28 12:11:20 +07:00
Juergen E. Fischer
5a25570b7e indentation update 2014-02-23 23:27:03 +01:00
Martin Dobias
fafa58ed24 Merge remote-tracking branch 'origin/master' into threading-revival
Conflicts:
	src/core/qgspallabeling.cpp
	src/core/qgsrenderchecker.h
	src/core/qgsvectorlayer.cpp
	src/core/symbology-ng/qgslinesymbollayerv2.cpp
	src/core/symbology-ng/qgssymbollayerv2.cpp
	src/providers/wms/qgswmsdataitems.cpp
	tests/src/core/testqgsblendmodes.cpp
2014-02-23 20:12:50 +07:00
Martin Dobias
bc07486982 Re-enable geometry simplification while rendering 2014-02-18 12:51:45 +07:00
Martin Dobias
a3af93394e Merge branch 'master' into threading-revival
Some features are still disabled - will be fixed later

Conflicts:
	python/core/composer/qgscomposition.sip
	python/core/diagram/qgsdiagram.sip
	python/core/diagram/qgshistogramdiagram.sip
	python/core/diagram/qgspiediagram.sip
	python/core/diagram/qgstextdiagram.sip
	python/core/qgsdiagramrendererv2.sip
	python/core/qgsfield.sip
	python/core/qgslabelsearchtree.sip
	python/core/qgsmaprenderer.sip
	python/core/qgsrenderchecker.sip
	python/core/symbology-ng/qgssymbollayerv2.sip
	python/gui/qgsmapcanvas.sip
	src/app/composer/qgscomposerlegendwidget.cpp
	src/app/qgisapp.cpp
	src/core/composer/qgsatlascomposition.cpp
	src/core/composer/qgscomposerattributetable.cpp
	src/core/composer/qgscomposermap.cpp
	src/core/composer/qgscomposition.cpp
	src/core/composer/qgscomposition.h
	src/core/diagram/qgsdiagram.h
	src/core/diagram/qgshistogramdiagram.cpp
	src/core/diagram/qgshistogramdiagram.h
	src/core/diagram/qgspiediagram.cpp
	src/core/diagram/qgspiediagram.h
	src/core/diagram/qgstextdiagram.cpp
	src/core/diagram/qgstextdiagram.h
	src/core/qgsdiagramrendererv2.cpp
	src/core/qgsdiagramrendererv2.h
	src/core/qgsmaprenderer.cpp
	src/core/qgsmaprenderer.h
	src/core/qgsnetworkaccessmanager.h
	src/core/qgspallabeling.cpp
	src/core/qgsrenderchecker.h
	src/core/qgsvectorlayer.cpp
	src/core/qgsvectorlayer.h
	src/core/qgsvectorlayerfeatureiterator.cpp
	src/core/qgsvectorlayerfeatureiterator.h
	src/core/raster/qgsrasterlayer.cpp
	src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
	src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
	src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
	src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
	src/core/symbology-ng/qgssymbollayerv2.cpp
	src/core/symbology-ng/qgssymbollayerv2.h
	src/core/symbology-ng/qgssymbolv2.cpp
	src/gui/qgshighlight.cpp
	src/gui/qgsmapcanvas.cpp
	src/gui/qgsmapcanvas.h
	src/gui/qgsmapcanvasitem.cpp
	src/gui/qgsmaptoolidentify.cpp
	src/plugins/georeferencer/qgsgeorefplugingui.cpp
	src/providers/memory/qgsmemoryfeatureiterator.cpp
	src/providers/ogr/qgsogrfeatureiterator.cpp
	src/providers/ogr/qgsogrfeatureiterator.h
	src/providers/ogr/qgsogrprovider.cpp
	src/providers/oracle/qgsoraclefeatureiterator.cpp
	src/providers/oracle/qgsoracleprovider.cpp
	src/providers/postgres/qgspostgresconn.cpp
	src/providers/postgres/qgspostgresfeatureiterator.cpp
	src/providers/postgres/qgspostgresfeatureiterator.h
	src/providers/wfs/qgswfsfeatureiterator.cpp
	src/providers/wms/qgswmsprovider.cpp
	src/providers/wms/qgswmsprovider.h
	src/ui/qgsoptionsbase.ui
	tests/src/core/CMakeLists.txt
	tests/src/core/testqgscomposereffects.cpp
	tests/src/core/testqgscomposerhtml.cpp
	tests/src/core/testqgscomposerscalebar.cpp
	tests/src/core/testqgscomposershapes.cpp
2014-02-18 11:28:46 +07:00
Martin Dobias
d4b1bb47f4 Reintroduce geometry caching while rendering (used esp. for snapping) 2014-01-20 17:47:19 +07:00
Martin Dobias
4493f513fd Draw labeling also in parallel map renderer job 2013-12-04 00:13:33 +07:00
Martin Dobias
9d001853c0 Introduction of concept of feature sources for vector data.
Feature sources of providers/layers should act as immutable
snapshots of the state of provider or layer, not being affected
by any concurrent changes to provider or layer while the source is in use.

Currently working just with OGR, Postgres, SpatiaLite providers.
2013-12-03 12:26:47 +07:00
Martin Dobias
879f051601 Reporting of rendering errors, safer isActive() for custom painter job 2013-11-26 19:10:16 +07:00
Martin Dobias
5b6393f22f Revived labeling and diagrams for vector layers 2013-11-20 18:48:24 +07:00
Martin Dobias
2fcf556c3c Do the rendering of map layers within special classes
This is an important change: new class (QgsMapLayerRenderer) is introduced
and it keeps all information from layer which is necessary for rendering.
Thanks to that, any changes to map layer will have no impact on rendering that
may be currently underway: if the user changes renderer, rendering will
not crash because it is using a different instance.

Work in progress: only vector layers, no labeling, no diagrams, iterator
still uses some bits from QgsVectorLayer.

Another change: QgsFeatureRendererV2, QgsSymbolV2 do not get access
to QgsVectorLayer - only to fields they need. Point displacement renderer
did more extensive use of QgsVectorLayer - currently it is not functional.
2013-11-20 16:01:12 +07:00