60 Commits

Author SHA1 Message Date
Nyall Dawson
25125b089e Remove deprecated composer methods 2016-09-14 07:20:17 +10:00
Matthias Kuhn
58ea21124e Streamline expression context generation (#3350)
* Save more data to QML

 * Virtual fields
 * Map tips
 * Display expression
 * Read only flag

* Streamline expression context generation

Whenever an object is able to generate an expression context it
implements the method createExpressionContext() declared in
QgsExpressionContextGenerator.

This makes a cleaner API and allows using QgsFieldExpressionWidget and
QgsDataDefinedButton from python because standard OO programming
approaches are used instead of callbacks and void pointers.

* Colorize output of doc and sip tests

* Fix build

* Fix sip complaints

* Fix rebase problems

* Workaround failing bindings test
2016-08-10 19:44:30 +02:00
Juergen E. Fischer
0688621046 scripts/replacev2.sh run 2016-08-10 12:08:52 +02:00
Martin Dobias
ab4a83b49b Goodbye to QgsMapRenderer (#3333)
For the time being the class is kept in the server code while it is still being used there.
2016-07-24 22:40:52 +02:00
Nyall Dawson
4cfacf14e3 Make API more consistent
- rename methods with XML to Xml, CRS to Crs, WMS to Wms, ID to Id
- rename methods with SRS to Crs
- rename methods with abbreviations like "dest" to "destination"
- rename methods with abbreviations like "src" to "source"
2016-07-21 08:40:50 +10:00
Nyall Dawson
a240cd8f8e Replace doxygen MapComposer group with core/gui
Since the MapComposer group doesn't actually exist
2016-07-04 19:57:13 +10:00
Martin Dobias
deee8e290e [FEATURE] Composer map to follow a visibility preset (fixes #13418)
This adds a new option in composer map properties:
"Follow visibility preset" with a combo box to choose the active preset.

This is an alternative to "lock layers" (and "lock layer styles") functionality
which would just copy preset's configuration, while the new option links to preset.

The difference is that when a preset is updated, composer map will automatically
pick the new configuration when following the preset, while there is no update
if "lock layers" (and "lock layer styles") option is used.
2016-05-17 12:52:32 +08:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +01:00
Nyall Dawson
c3a57434d9 Fix clazy 'pass small and trivially-copyable type by value' warnings 2016-02-02 19:47:21 +11:00
Nyall Dawson
9cc9d424ce Add extra check for deprecations to documentation test
This check tests that if a function has been declared deprecated
with either Q_DECL_DEPRECATED or has a @deprecated Doxygen note
then it MUST have both the Q_DECL_DEPRECATD and @deprecated note.

It's important that both are used, as Q_DECL_DEPRECATED allows
throwing a warning if that method is used in code, while the
@deprecated doxygen note gives an indication to devs/PyQGIS users
of why it's deprecated and what should be used instead.

Ideally we'd also test for SIP /Deprecated/ tags, but I can't
find any reliable way to do this.
2015-12-07 21:55:36 +11:00
Nyall Dawson
829ff50200 Expose map settings (rotation, scale) through expression contexts 2015-09-07 20:24:56 +10:00
Nyall Dawson
43bcc0c2a5 Finish porting composer to expression contexts 2015-08-22 19:01:40 +10:00
Juergen E. Fischer
9752c468c1 indentation update 2015-07-29 11:52:14 +02:00
Martin Dobias
205daae008 Support overriden layer styles also in the composer legend 2015-05-26 18:59:30 +07:00
Juergen E. Fischer
edeafa95ac indentation and minor sip updates 2015-05-03 17:10:32 +02:00
Nyall Dawson
7314047698 Fix missing doc strings due to invalid doxygen tags 2015-04-30 17:26:58 +10:00
Nyall Dawson
837c7ee8d3 [composer] Don't redraw map if layers change and map is set to cached
Previously map was being redrawn every time a layer was added or
removed from the registry, which blocked the ui until the map
redraw is complete.

Now the map will only be redrawn as a result of layer changes
if it's set to Render mode.

Possible fix for 12234 and 12125. (refs #12234, #12125)
2015-03-26 10:58:19 +11:00
Juergen E. Fischer
abd4a04399 sip update 2015-02-03 02:21:52 +01:00
Martin Dobias
5266fd97ee [FEATURE] Composer map - optionally store layer styles
There is a new check box that allows the user to tell whether a map should
keep the layer styles (it will store the state when the check box is checked).
The stored layer styles keep a snapshot of each layer's configuration
instead of just keeping name of the style.

This solves issues with styles and visibility presets in composer which were
not completely compatible.

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 6002233F59)
and commissioned to Gis3W s.a.s.
2015-01-19 15:18:55 +07:00
Martin Dobias
4dead724f5 Allow multiple styles of layers in composer maps
When layer set is locked in composer map, also the styles associated with layers are kept.
As a result, a composition can contain maps of the same layer just with different styles.

Map settings and map renderer jobs have been improved to support temporary override of layer's style.
It is possible to pass to map settings which layers should have overridden style and map jobs
will temporarily replace the style (just for the rendering).
2015-01-09 21:48:15 +07:00
Juergen E. Fischer
9ceb5ceab6 sip sync 2014-11-21 01:17:21 +01:00
Juergen E. Fischer
d4f64d9bde indentation update and typo fixes 2014-11-13 23:13:13 +01:00
Juergen E. Fischer
82b6e0342a cosmetic cleanups, typo fixes, formatting 2014-10-21 01:33:20 +02:00
Nyall Dawson
8725c2df4b [composer] Fix ctrl modifier not applying to wheel events when in move item
content mode, add missing undo merge command for item zoom (refs #7974)
2014-09-29 19:21:01 +10:00
Nyall Dawson
89a7573faf [FEATURE][composer] Allow data defined control of atlas margin for maps 2014-09-26 09:05:52 +10:00
Martin Dobias
e37a5ad8df [FEATURE] Legend filtering based on map content (in main window, composer, WMS)
There is new "filter" button in layers panel that toggles this functionality
and in composer legend widget.

Related feature is that layer tree now shows symbols in map units with correct size
(even when filtering is not enabled) so as the map view changes the legend node icons
are updated too (if they use map units).

GetLegendGraphics in WMS server
-------------------------------

This is an extension of standard GetLegendGraphics request according to MapServer RFC 101.
See the document for more details: http://mapserver.org/development/rfc/ms-rfc-101.html

In summary, clients need to add BBOX and CRS/SRS parameters to get appropriate legend based on the given map view.
Parameters WIDTH and HEIGHT are also taken into account as they specify map view image size for correct calculation
of size of legend symbols (if they are based on map units).

--

This software has been commissioned by Tuscany Region (Italy),
co-funded by the European Commission and developed under the project LIFE12 ENV/IT/001054 LIFE + IMAGINE.
The software has been realized by Gis3W s.a.s.

Questo software è stato commissionato da Regione Toscana (Italia),
cofinanziato dalla Commissione Europea e sviluppato nell'ambito del progetto LIFE12 ENV/IT/001054 LIFE + IMAGINE.
Il software è stato realizzato da Gis3W s.a.s.
2014-09-25 12:56:37 +02:00
Nyall Dawson
7904c100cf [composer] Add some missing Transfer/TransferThis methods to sip bindings 2014-09-21 21:05:29 +10:00
Nyall Dawson
ccad38bf33 [composer] Clean up QgsComposerMap api, add docs and missing sip bindings for composer overviews 2014-09-21 00:47:57 +10:00
Nyall Dawson
1b773165f2 [composer] Update sip bindings, add missing sip bindings for
QgsComposerMapGrid (sponsored by NIWA, New Zealand)
2014-09-03 21:22:29 +10:00
Nyall Dawson
b5835972bb [composer] Add zoomToExtent for QgsComposerMap, allows easily fitting a set extent into the map item without altering the item's shape 2014-09-01 16:05:27 +10:00
Juergen E. Fischer
07165eae79 indentation update 2014-08-17 13:37:34 +02:00
Nyall Dawson
87e775a1e7 [composer] More improvements to item dispayName methods 2014-07-29 21:37:25 +10:00
Nyall Dawson
e2d57d9b65 [composer] Clean up code, move some methods to QgsComposerUtils, const correctness, tests, doc improvements 2014-07-16 22:47:18 +10:00
Nyall Dawson
6f3cea12f0 Follow up 2041fc24 2014-07-15 00:25:33 +10:00
Nyall Dawson
2041fc2480 [composer] Refactor QgsComposerItem:
- New class QgsComposerObject, which both QgsComposerItem and QgsComposerMultiFrame
derive from. This class contains the framework for data defined composition properties.
- New class QgsComposerUtils, containing helpful static functions previously in QgsComposerItem
- Test suites for data defined settings in QgsComposerObject and functions in QgsComposerUtils
2014-07-14 23:51:10 +10:00
Nyall Dawson
6d7c5f885d [FEATURE][composer] Data defined map scale, rotation and extents. Funded by Canton of Neuchâtel, Switzerland 2014-07-05 22:00:30 +10:00
Nyall Dawson
01b3d9662c [composer] Fix order of vertices returned by mapPolygon when map rotation is set, fix drawing overview frame when either map is rotated (fix #10644) 2014-06-23 19:14:39 +10:00
Juergen E. Fischer
45c0be1059 sip: remove enum constants 2014-06-02 21:52:02 +02:00
Juergen E. Fischer
c4c131ef75 sip sync 2014-05-27 23:32:42 +02:00
Nyall Dawson
e8b7ca943c [composer] Small improvements to API docs 2014-05-23 11:17:05 +10:00
Hugo Mercier
084fa8992b [FEATURE][composer] Add a 'predefined scales' mode to atlas maps, which sets an atlas maps' extent to the largest predefined scale which fits the atlas feature. Scales are taken from the project's predefined scales, or the global predefined scales. 2014-05-23 11:17:05 +10:00
Nyall Dawson
7e977bcfd3 [composer] Some api documentation improvements and fix ups 2014-04-28 19:29:04 +10:00
Nyall Dawson
122034a07a [composer] Some small fixes to svg layers export, naming improvements, additional comments 2014-04-16 19:47:40 +10:00
vmora
0c19945c04 [composer] add svg export with layers 2014-04-16 19:11:20 +10:00
Sandro Mani
b9bd4d247e [composer] Correctly update extent when restoring composermap state, except when composer map is not yet visible after loading 2014-04-15 20:08:19 +10:00
Hugo Mercier
9eb8ef4e98 Add signals to atlas generation 2014-03-18 17:08:09 +01:00
Martin Dobias
5a4f8d07a0 Change "added/deprecated in 2.1" notes to 2.4 for stuff related to threading 2014-02-21 17:33:09 +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
Juergen E. Fischer
74e7314c36 update sip bindings II 2014-01-27 09:22:53 +01:00
Nyall Dawson
6bb9dfec00 [FEATURE][composer] Allow for more than one atlas controlled map in compositions (or none), by moving some atlas properties to map items (fix #9248) (fix #6484) 2014-01-14 22:52:01 +11:00