462 Commits

Author SHA1 Message Date
Nyall Dawson
1bf1058210 Followup fcacb0d, fix doxygen tests
Also:
- move doxygen comments to header files so that they get included
in Python docstrings
- remove duplicate doxygen implemented in both header and footer
- remove some redundant doxygen for overridden methods
- add some missing docs
2018-04-03 09:49:00 +10:00
Juergen E. Fischer
fcacb0db7c doxygen fixes 2018-04-02 22:48:40 +02:00
Denis Rouzaud
47ab9b89e7 remove const for QgsReadWriteContext to allow bringing up error messages 2018-02-28 13:43:10 -04:00
Nyall Dawson
3d4f6f82bb Followup 0548f4, fixes to layer metadata and metadata widget
Address outstanding review requests so that this PR can be merged
2018-02-20 11:10:55 +10:00
mj10777
0548f4267e Added QgsLayerMetadata logic to QgsDataProvider. Added setMetadata in QgsVector/RasterLayer::setDataProvider. Corrections in QgsMetadataWidget with added get/setMetadata and hasChanged functions plus checking for set mLayer pointer before use. 2018-02-20 11:06:57 +10:00
Nyall Dawson
0607f79f47 Ensure member QObjects for QgsMapLayer (and subclasses) are correctly
parented to their owner QgsMapLayer.

This ensures that if the layer is moved to a different thread with
QObject::moveToThread(), then those children are also considered
by QObject::moveToThread() and correctly also moved to the new
target thread. This fixes broken connections (and likely other
issues) caused when moving layers between threads (such as is
done when a background processing algorithm completes).

Fixes #18005
2018-02-05 12:19:13 +11:00
Etienne Trimaille
bf45d0b618 Crs (#5908)
* fix display of CRS if invalid CRS

* fix #17455 set an empty CRS if the read CRS from XML is wrong

* add warning about empty CRS node when reading XML
2017-12-20 10:46:00 +02:00
Etienne Trimaille
5c28ecab8f update HTML data provider metadata (#5700)
* update HTML data provider metadata for grass, gdal and ams

* update HTML data provider metadata for WMS and WCS

* move HTML bullet list to QgsHtmlUtils
2017-12-13 13:29:41 +02:00
Martin Dobias
f8788b9185 [3d] Fix style copy/paste for 3D renderer (fixes #17540) 2017-12-02 09:32:23 +01:00
Etienne Trimaille
59cc5434b8 switch display between identification section and provider in the metadata tab 2017-11-21 17:16:36 +01:00
Nyall Dawson
6f55e50a13 Remove QgsMapLayer::originalName()
Now QgsMapLayer::name() is guaranteed to return the same string
2017-11-14 21:53:31 +11:00
Nyall Dawson
ba62ffce2c Make constructors for QgsVectorLayer and QgsRasterLayer more flexible
...by moving extra arguments to new LayerOptions structs. This allows
us to more easily add new layer constructor options without making
the API cumbersome to use.
2017-11-09 14:28:51 +11:00
Nyall Dawson
49b426d951 Make doxygen_space script convert multiline //! comments
Because:
- the /** format is much more prevalent throughout QGIS
- sipify works correctly with /**
2017-10-06 07:55:52 +10:00
Nyall Dawson
8c3939e756 More efficient use of QStrings
- use .isEmpty() instead of == QLatin1String( "" ) to check for
empty strings
- use .clear() instead of = QLatin1String( "" ) to empty a string
- remove unnecessary QString initializations
2017-09-28 05:25:51 +10:00
Nyall Dawson
a87d352bd7 Run clang-tidy modernize-use-default-member-init to move member
initialization to headers (c++11 style)
2017-09-27 05:02:34 +10:00
Nyall Dawson
31c1ae1c6a Add missing QStringLiterals 2017-09-25 17:12:03 +10:00
Etienne Trimaille
c3309b9257 use the metadata API in the HTML viewer 2017-09-13 16:50:14 +02:00
Nyall Dawson
ba64e3e533 Remove redundant initializations
Fixes when a member is initialized both in the header and
source to the same initial value

(via clang-tidy modernize-use-default-member-init fixit)
2017-09-11 17:09:35 +10:00
Etienne Trimaille
e8ddc48d81 review of the raster metadata viewer (#4726) 2017-06-24 22:04:53 +02:00
Matthias Kuhn
a9d7630a69 Rename QgsPointV2 to QgsPoint and QgsPoint to QgsPointXY
Because 3D coordinates should be the default.

References https://github.com/qgis/qgis3.0_api/issues/36
2017-06-02 19:53:37 +02:00
Blottiere Paul
344b964709 Update unit tests for raster layer 2017-05-18 11:09:42 +02:00
Blottiere Paul
4ce17f5da5 Clone more members in raster layer 2017-05-18 11:09:42 +02:00
Blottiere Paul
8a6137247a Remove the deep copy functionality 2017-05-18 11:09:41 +02:00
Blottiere Paul
7b20c2e8b3 [FEATURE] add clone() methods for layers 2017-05-18 11:08:09 +02:00
Martin Dobias
23a7bd0fd9 Introduce QgsReadWriteContext that encapsulates QgsPathResolver
This should make the read/write methods more flexible if we need to give them extra context.
2017-05-13 18:09:26 +08:00
Martin Dobias
8ffd91ea90 Propagate path resolver through renderers, annotations, diagrams
This is necessary in order to be able to correctly translate between absolute and relative paths
deeper in the code - e.g. paths to SVG files used in marker or fill symbols.

Until now, relative paths were translated to absolute paths on the fly.
This is now changed - paths to files should be always absolute within QGIS objects - and paths
only get turned into relative when saving projects. When loading a project, relative paths
are translated to absolute paths immediately.

This should lower the overall confusion about relative/absolute paths within QGIS, and also
allow having different base directories for relative paths (e.g. QML or QPT files may use relative paths
to their directory - rather than to the project directory)
2017-05-13 18:02:19 +08:00
Nyall Dawson
ba2fdf00ab Rename some QgsProviderRegistry methods to clarify that they are factories
- provider() was renamed to createProvider()
- selectWidget() was renamed to createSelectionWidget()
- providerLibrary() was renamed to createProviderLibrary()
2017-05-06 12:28:06 +10:00
Nyall Dawson
f2a7dcbdd7 Rename QgsMapLayer::metadata -> htmlMetadata()
Frees up metadata() for use as a structured metadata getter
2017-04-10 18:45:00 +10:00
Nyall Dawson
676dc1a1d6 Remove redundant doxygen comments from .cpp files, move to .h
where appropriate
2017-04-03 13:18:36 +10:00
Nyall Dawson
e8ef91ce98 Cleanup QgsRasterDataProvider/QgsRasterLayer progress reporting
Instead of progress changed signals on the provider/layer level,
instead use QgsFeedback arguments for methods which previously
emitted progress changed signals
2017-04-03 12:08:08 +10:00
Juergen E. Fischer
a10c890383 More QgsSettings updates:
* revives WMS
* QgsSettings::clear() added
* section added to QgsSettings::contains()
* type parameter added to sip binding of QgsSettings.value()
* TODO: customization & evis
2017-03-04 02:37:59 +01:00
Denis Rouzaud
40c056cae0 run astyle on src/core 2017-03-03 09:09:37 +01:00
rldhont
98d323edb1 [Server] Remove QgsWCSProjectParser 2017-02-27 16:55:00 +01:00
Denis Rouzaud
7812d4fb17 remove the-prefix from source code
this might result in variables having the same name as some methods
2017-02-21 18:14:58 +01:00
Nyall Dawson
aed6c735a6 Swap QScopedPointer to std::unique_ptr
Why?
- no benefits to QScopedPointer over std::unique_ptr
- unlike QScopedPointer, std::unique_ptr has no overhead
over regular pointers
- using standard language features makes it more likely that
compilers can optimise this use and static analysers can
correctly handle code using unique_ptrs
- QScopedPointer has an (IMO) uncertain future (given that
Qt is dropping features which have become part of the c++
standard). Better to port now before wider use of QScopedPointer
in the codebase!
2017-02-07 12:08:57 +10:00
Nyall Dawson
7619cba438 Fix/avoid Coverity null pointer dereference warnings 2017-02-03 09:28:02 +10:00
Nyall Dawson
f4a9797b3d Merge pull request #4067 from nyalldawson/raster_ctor
Remove duplicate QgsRasterLayer constructor
2017-01-27 19:05:14 +10:00
Nyall Dawson
bfdd9dc0b0 Fix some coverity null pointer dereference issues 2017-01-27 16:54:03 +10:00
Nyall Dawson
45fc6dc2fe Remove duplicate QgsRasterLayer constructor
Avoids confusing overload behavior when constructing QgsRasterLayers
from c++ code. This extra constructor was causing character literals
to be converted to a boolean loadDefaultStyle flag instead
of being used as the provider key. Removing the extra constructor
avoids this, and removes some duplicate code.
2017-01-27 11:13:52 +10:00
Nyall Dawson
799b833cae Fix some memory leaks identified by Coverity 2017-01-27 10:13:46 +10:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Martin Dobias
b340d7bdb6 Add willBeDeleted() signal to QgsMapLayer (#3998)
This allows pieces of code that depend on map layers to listen directly
to the layer's notification rather than having to listen to project's
layersWillBeRemoved signal (and cycle through the whole list)
2017-01-16 16:51:44 +08:00
Denis Rouzaud
6c74e4ea5d spelling fixes 2017-01-12 22:01:50 +01:00
Mathieu Pellerin
632f9c5825 Fix for alphaBand and opacity loss upon renderer switch (style dock & properties window) (#3967)
* [styledock] maintain raster alpha band and opacity when switching renderer

* [raster] fix alphaBand/opacity loss when opening layer properties
(fixes #16044)
2017-01-09 13:43:31 +07:00
Nyall Dawson
9d4adc1c70 Remove some singletons by moving instances to QgsApplication
- QgsColorSchemeRegistry
- QgsDataItemProviderRegistry
- QgsGPSConnectionRegistry
- QgsMessageLog
- QgsPaintEffectRegistry
- QgsPluginLayerRegistry
- QgsRasterRendererRegistry
- QgsRendererRegistry
- QgsSvgCache
- QgsSymbolLayerRegistry
2016-12-28 16:59:03 +10:00
nirvn
239b342a3f [FEATURE] Raster stretch toolbar actions support for pseudocolor renderer 2016-12-27 10:16:51 +07:00
nirvn
5ece689033 [FEATURE] Implement raster pseudocolor updated extent auto classification 2016-12-27 10:16:51 +07:00
nirvn
181f84b86f [raster] move pseudocolor renderer classification out of gui into core 2016-12-27 10:16:51 +07:00
Even Rouault
532eb58d1f [FEATURE] Implement raster auto-stretching when updating canvas
This commit implements the improvements described at:
https://lists.osgeo.org/pipermail/qgis-developer/2016-September/044393.html

The QgsRasterMinMaxWidget now offers a seetting to specify that the statistics
should be computed each time the canvas extent changes.

Other changes:
- the content of the QgsRasterMinMaxWidget is now persistant.
- there is no longer any Load button. The global Apply / OK button of the raster
  properties dialog has this effect.
- the default "limits" for single band raster is now MinMax and not CumulativeCut
- the default "limits" can be configured for single band, multi band single byte and
  multi band multi byte
- "Strech using current extent" honours the "limits" instead of forcing min/max.
2016-12-16 12:36:06 +01:00
Martin Dobias
d56a97d4fe Merge QgsMapLayerRegistry into QgsProject
All methods/signals of QgsMapLayerRegistry moved verbatim to QgsProject.
2016-12-10 15:18:12 +08:00