98 Commits

Author SHA1 Message Date
Matthias Kuhn
03f08a6c79 Fix QgsMapLayer ConvertToSubClassCode (#3611)
Fix #15683
2016-10-17 10:47:08 +02:00
Martin Dobias
a9105b7e7a Remove QgsMapLayer::draw() method from API (replaced by createMapRenderer()) (#3501) 2016-09-16 18:32:36 +08:00
Hugo Mercier
a86611b626 Cleanup layer dependency api 2016-09-01 09:58:37 +02:00
Hugo Mercier
0749ba43ba Rework layer dependencies
A new class QgsMapLayerDependency allows to represent different kinds
of dependencies between layers.
2016-08-31 14:40:13 +02:00
Hugo Mercier
1a5a7c5905 [Feature] Data dependencies between layers
This allows to declare data dependencies between layers. A data
dependency occurs when a data modification in a layer, not by direct
user manipulation may modify data of other layers.
This is the case for instance when geometry of a layer is updated by a
database trigger after modification of another layer's geometry.
2016-08-31 09:22:09 +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
Martin Dobias
31c75ef22e Remove QgsLabel and QgsLabelAttributes + remove QgsPalLabeling from renderer jobs 2016-07-20 18:35:20 +08:00
Nyall Dawson
21eab8c2ea Add missing docs 2016-07-15 08:08:24 +10:00
Nyall Dawson
0d84ca74c5 Make QgsMapLayer::metadata() const 2016-07-15 06:07:08 +10:00
Nyall Dawson
0935b58fef Cleanup QgsMapLayer for 3.0
- implement QGIS 3.0 TODOs
- mark methods as const correct
- rename 'the...' parameters to remove 'the'
- mark QgsVectorLayer::getFeatures as const
2016-07-15 06:07:00 +10:00
Nyall Dawson
6c6f3c1e34 Remove deprecated members from QgsMapLayer 2016-07-15 06:02:45 +10:00
Nyall Dawson
726569c6bc QgsMapLayer::crs() now returns a copy, not a reference
(desirable because QgsCoordinateReferenceSystem is implicitly shared)
2016-07-15 06:00:51 +10:00
Matthias Kuhn
15c2f0a902 Make QgsMapLayer::name a Q_PROPERTY (#3259)
Make QgsMapLayer::name a Q_PROPERTY

And align setName / name / nameChanged

Deprecates setLayerName / layerNameChanged
2016-07-04 01:10:10 +02:00
Nyall Dawson
c3c5c43190 Avoid style dock flashing when editing layers
Also prevent a lot of duplicate style dock updates, and fix
the style dock losing connection to layer style changes
2016-06-27 14:03:36 +10:00
Martin Dobias
8fcac87f9d Fix API break of QgsMapLayer class introduced in 2.16
This breakage was resulting in a Python error when using plugin layers
due to calls to pure virtual method writeStyle()
2016-06-22 20:10:17 +02:00
Matthias Kuhn
95f81391d3 sip bindings 2016-06-03 15:13:42 +02:00
Nathan Woodrow
ca914f118e [FEATURE] Add style/history tab to style dock 2016-05-10 10:32:30 +10:00
Matthias Kuhn
93e73ac66f Make readOnly mode of vector layers configurable 2016-03-29 08:27:53 +02:00
Nyall Dawson
5e08626051 Add QgsMapLayer::isSpatial() method
The current approach of testing !vl || vl->geometryType() != NoGeometry
is not intuitive and has been the source of 2 recent bugs.

Replacing these tests with the new isSpatial() function makes it
immediately obvious what is being tested. It also allows for
non-spatial plugin layers to be correctly handled by overriding
this method.
2016-03-16 12:38:16 +11:00
Nyall Dawson
80afbeda93 Use doubles instead of float for min/max layer scales 2016-03-10 10:45:19 +11:00
Nyall Dawson
3b4638ab83 Followup 01f615d 2016-03-10 07:43:25 +11:00
Patrick Valsecchi
3efc73be61 Made layers/labels visibility more consistent
Some places forgot to make the max scale inclusive.
2016-03-09 09:56:06 +01: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
Hugo Mercier
1a1af3788c Rework layer dependencies to work also with layer definition files 2016-01-07 14:03:15 +01:00
rldhont
a32587bcd1 [FEATURE][QGIS Server] Add short name to layers, groups and project
A number of elements have both a <Name> and a <Title>. The Name is a text string used for machine-to-machine
communication while the Title is for the benefit of humans. For example, a dataset might have the descriptive Title
“Maximum Atmospheric Temperature” and be requested using the abbreviated Name “ATMAX”.

User can already set title for layers, groups and project. OWS name is based on the name used in layer tree. This name is more a label for humans than a name for machine-to-machine communication.

To add the capability to users to define Name as a text string for machine-to-machine communication, this pull-request adds:
* short name line edits to layers properties
* WMS data dialog to layer tree group (short name, title, abstract)
* short name line edits to project properties
* add a regexp validator "^[A-Za-z][A-Za-z0-9\._-]*" to short name line edit accessible through a static method
* add a TreeName element in the fullProjectSettings

If a short name has been set for layers, groups and project it is used by QGIS Sever as the layer name.
2015-12-23 10:03:04 +01:00
rldhont
f7566710af [Doc] Update QgsMapLayer documentation
Add documentation string to 10 QgsMapLayer methods.
2015-12-21 17:33:47 +01:00
Matthias Kuhn
56ccb2b858 sipClass_Klass is deprecated for a long time: replace with sipType_Klass 2015-11-11 23:22:51 +01:00
Nyall Dawson
fe221d54bf Don't return QStrings by reference, since they're implicitly shared
anyway
2015-10-28 09:47:44 +11:00
Nyall Dawson
f1633a1796 Change all signals to use const refs for non trivial objects 2015-10-26 22:46:25 +11:00
Matthias Kuhn
cd0eb05ded [py3] Some compatibility fixes for python 3 2015-10-24 13:47:32 +02:00
Nyall Dawson
c49b5b777f Change a lot of arguments to const references in core/gui
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
2015-10-07 12:02:04 +11:00
Juergen E. Fischer
9752c468c1 indentation update 2015-07-29 11:52:14 +02:00
Nyall Dawson
7314047698 Fix missing doc strings due to invalid doxygen tags 2015-04-30 17:26:58 +10:00
Juergen E. Fischer
abd4a04399 sip update 2015-02-03 02:21:52 +01:00
Martin Dobias
11d331dd66 Add QgsMapLayer::importNamedStyle() functions
Like this we do not need to use a temporary file to load a style
2015-01-16 14:14:41 +07:00
Martin Dobias
8b5587fe13 Improve the internals of map layer style manager
- style manager is always enabled (client code does not need to distinguish between enabled/disabled state)
- layers currently active style is stored only in QgsMapLayer - in style manager it has entry with no data (avoids duplication of data)

This also solves issues with visibility presets and styles when some presets do not have stored style
2015-01-09 17:04:26 +07:00
Martin Dobias
2144be0ac1 Add Python bindings for map layer style manager 2015-01-07 20:15:11 +07:00
Nyall Dawson
8a182b7f34 Clean up QgsMapLayer scale based visibility api 2014-12-05 20:39:09 +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
Juergen E. Fischer
82b6e0342a cosmetic cleanups, typo fixes, formatting 2014-10-21 01:33:20 +02:00
Martin Dobias
fba5c5a656 Move triggerRepaint() to QgsMapLayer, use it instead of deprecated clearCacheImage() 2014-09-11 23:52:21 +07:00
Martin Dobias
57dcfca487 Legend refactoring: first steps towards legend customization
- map layers have associated QgsMapLayerLegend instance
- QgsMapLayerLegend is interface for generation of legend with some default implementations
- QgsLayerTreeModelLegendNode is interface for representation of legend item in layer tree model with some default implementations
2014-07-17 20:49:30 +02:00
Martin Dobias
62e499e1be Promote rendererChanged() signal from raster+vector layer to base map layer 2014-05-26 21:29:28 +07:00
Juergen E. Fischer
bbdf7cd220 sync some sip bindings 2014-05-18 15:22:32 +02:00
Nathan Woodrow
317a5094c4 Support multi layers in QLR files 2014-05-18 22:22:06 +10:00
Martin Dobias
9e42c5bc7f Fix support for setCacheImage() to enforce refresh of a layer 2014-03-25 18:58:00 +01:00
Nathan Woodrow
3c3872176c Add load and saving a Layer Definition file. Fix #9688 2014-03-10 09:19:38 +10: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