100 Commits

Author SHA1 Message Date
Nyall Dawson
24d9c65494 Fix more classes which violate the rule-of-three
Also remove some empty destructors
2016-01-26 14:24:45 +11:00
Nyall Dawson
752f6bd150 Fix classes which violate rule of three, by implementing required
copy/= operators or making them private

This revealed (and fixes) some issues, including a potential crash
using server access control (refs #13919), and a potential crash with
diagrams
2016-01-22 18:45:45 +11:00
Nyall Dawson
60816af372 Correctly mark some raster classes copy/assignment as private
As they haven't been properly implemented yet and the classes
violate the rule of three
2016-01-20 17:06:04 +11:00
Radim Blazek
689be029d4 missing sip 2016-01-09 16:33:56 +01:00
Nyall Dawson
881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +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
cdf21b7c3e Return derived classes from clone() methods, avoids need to
dynamic_cast results
2015-11-12 20:29:06 +11:00
Matthias Kuhn
56ccb2b858 sipClass_Klass is deprecated for a long time: replace with sipType_Klass 2015-11-11 23:22:51 +01:00
Juergen E. Fischer
b5794b2f2d sip coverage fixes:
* make sip coverage test aware that there are less classes where QSci sip
  headers are not available
* exclude properties from members
* fix QgsFeatureIds typedef (fixes missing signal
  QgsVectorLayer.featuresDeleted and others)
* add missing notes for PyNames
* include some missing new methods in bindings
2015-11-08 19:30:39 +00:00
Nyall Dawson
fe3417b5ef Partial revert of 70bff3f
Commit was causing crashes in browser. Refs #13738
2015-11-05 21:23:04 +11:00
Nyall Dawson
f1633a1796 Change all signals to use const refs for non trivial objects 2015-10-26 22:46:25 +11:00
Nyall Dawson
70bff3f6aa Finish flipping a lot of methods to take const references for
non-trivial types
2015-10-26 22:46:14 +11:00
Nyall Dawson
c6df096c38 Followup c49b5b7, more fixes 2015-10-07 18:32:24 +11: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
carolinux
37cd9e7a0d Added doxygen docs 2015-06-24 01:15:42 +02:00
carolinux
45681e6e0a Added setBand capability to qgssinglebandpseudocolorrenderer API 2015-06-23 17:19:58 +02:00
Martin Dobias
40acaa051a Deprecate QgsRasterLayer::setDrawingStyle() (fixes #12635) 2015-06-18 12:47:45 +08:00
Nyall Dawson
559d7bb943 [rastercalc] Rework raster calculator to use QGIS raster classes
...rather than reading input layers directly through GDAL.
Benefits include more robust handling of nodata/data type conversions,
less code duplication, also being able to take advantage of features
in QGIS raster code like handling gain/offset in rasters. (fix #12450)

Also, add a choice of output projection to the raster calculator.
Previously the output CRS would be taken from the first raster, with
no guarantees that the output extent matched the output CRS. This
resulted in empty/misplaced rasters. (fix #3649)
2015-06-10 21:45:37 +10:00
Nyall Dawson
920f2ebe56 Fix bug causing raster blocks to be cleared when reprojecting
If a QgsRasterBlock had no nodata value set, then reprojecting
the raster using QgsRasterProjector would result in the entire
block being set to nodata.
2015-06-09 21:57:08 +10:00
Nyall Dawson
7314047698 Fix missing doc strings due to invalid doxygen tags 2015-04-30 17:26:58 +10:00
Nyall Dawson
b05e789c57 Fix build 2015-02-03 20:47:29 +11:00
Juergen E. Fischer
abd4a04399 sip update 2015-02-03 02:21:52 +01:00
Nyall Dawson
e887d075aa Correctly set band number for pseudocolor renderer widget
Previously the band was always reset to the first band when opening
the raster layer properties.
2014-12-04 16:15:36 +11:00
Juergen E. Fischer
9ceb5ceab6 sip sync 2014-11-21 01:17:21 +01:00
Martin Dobias
aeb9d934ed Fix QgsRasterInterface bindings again (fixes PyQgsRasterFileWriter test) 2014-10-23 16:16:21 +07:00
Martin Dobias
6db04b41f9 Fixed SIP wrapper for conversion to QgsRasterInterface subclasses 2014-10-22 17:39:14 +07: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
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
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
D'Hont René-Luc
07c57585c1 [RASTER][Feature] Applying scale and offset to raster data - funded
Ifremer

An issue has been opened 5 mounth ago
[BUG] #8417 incorrect value loaded from netcdf file
The data has not be loaded incorrectly, but QGIS doesn't apply scale
and offset defined for each band.

This commit will apply scale and offset to GDAL Provider BandStatistics
and to RASTER block of data.

It also adds bandScale and bandOffset method to QgsRasterDataProvider Python API.
2014-05-15 16:55:30 +02:00
Juergen E. Fischer
d6495abee4 wms provider:
* support JSON for feature info
* implement feature info for WMTS
* cleanup metadata display
2014-03-02 01:16:48 +01:00
Juergen E. Fischer
5db13abcf5 * remove deprecated overloads QgsRasterLayer::lastError() and QgsRasterLayer::lastErrorTitle()
* deprecate QgsRasterLayer::previewAsPixmap() (doesn't work in background threads)
* QImage::fill( QColor ) does not exists prior to Qt 4.8
diff --git a/src/core/raster/qgsrasterlayerrenderer.h b/src/core/raster/qgsrasterlayerrenderer.h
index 6ab4a49..40a27a2 100644
--- a/src/core/raster/qgsrasterlayerrenderer.h
+++ b/src/core/raster/qgsrasterlayerrenderer.h
@@ -8,7 +8,7 @@ class QPainter;
 class QgsMapToPixel;
 class QgsRasterLayer;
 class QgsRasterPipe;
-class QgsRasterViewPort;
+struct QgsRasterViewPort;
 class QgsRenderContext;

 class QgsRasterLayerRenderer : public QgsMapLayerRenderer
2014-02-24 18:11:20 +01:00
Etienne Tourigny
75a2edb3e9 add QgsRasterLayer::previewAsImage() for MTR rendering (see bug 9626) 2014-02-24 12:20:17 -03: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
Juergen E. Fischer
d4e369414b update sip bindings 2014-01-26 18:36:29 +01:00
Martin Dobias
2bece090f5 Update Python bindings to match changes in core/gui libraries. 2013-12-05 18:27:45 +07:00
Hugo Mercier
bf076a0c1f Emit a signal when layer symbology changes 2013-10-04 09:59:18 +02:00
Juergen E. Fischer
51297d5990 indentation update (note to self: always run scripts/prepare-commit.sh before committing) 2013-09-17 12:41:43 +02:00
Juergen E. Fischer
0a1d44fc63 make qgis_app a shared library and fix some more stl warnings with msvc 2013-09-07 00:22:10 +02:00
Juergen E. Fischer
5d3223127d sync qgsrasterblock sip (followup eaa27aa4f) 2013-07-22 17:20:56 +02:00
Denis Rouzaud
335d7f02b4 raster block: add missing hasNoData method in sip 2013-07-22 15:56:51 +02:00
Juergen E. Fischer
3854086d47 sip update 2013-06-23 16:00:24 +02:00
Juergen E. Fischer
99f998aa30 - add missing sip bindings
- port widgets_tree.py to QtXml and update customization.xml (fixes #5752 and  #8054)
2013-06-22 19:41:34 +02:00
Etienne Tourigny
7cceaaf73b replace QgsRasterLayer::buildSupportedRasterFileFilter() with QgsProviderRegistry::instance()->fileRasterFilters() 2013-06-14 13:09:13 -03:00