51 Commits

Author SHA1 Message Date
Alessandro Pasotti
8e0a5e1cbe Address PR comments 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
31a5d632c4 Layout 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
0bcb75ff1b Missing sip includes 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
bbb045e2bb Getting closer... almost relase-ready 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
70c93d4aea Gui enhancements 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
62dff87ccf RAT GUI 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
5a88611b38 Paletted RAT auto-loading 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
df4f7fe84e RAT model 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
6184bd6f29 RAT model inital implementation 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
b3bc13450c Remove GUI leftover 2022-10-22 08:52:37 +10:00
Alessandro Pasotti
7debc91480 sipify 2022-10-22 08:52:37 +10:00
Mathieu Pellerin
ac7b711dea Fix setting min/max through histogram doesn't activate contrast
enhancement algorithm

The commit also makes the histogram work for the single band pseudo color
raster renderer.
2022-06-06 17:12:54 +10:00
Nyall Dawson
b28a27636d Add some missing /Factory/ annotations 2021-10-29 13:24:47 +11:00
Nyall Dawson
c8156c059c Improve documentation 2021-10-29 13:24:47 +11:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
Alessandro Pasotti
adf102a839 Use QgsRasterTransparencyWidget in raster properties dlg
Remove a bunch of duplicated code and fix #44949
2021-09-14 17:00:10 +02:00
Nyall Dawson
2a9c32bb9c [feature] Expose data defined control over raster layer opacity
Allows the opacity of a raster to be varied e.g. on different
pages of an atlas, depending on the visibility of another layer,
by temporal variables, etc...
2021-06-25 13:53:52 +10:00
Even Rouault
8a6ed7d8f9 Address -Woverloaded-virtual clang virtual and enable the warning 2021-06-25 06:37:49 +10:00
Nyall Dawson
207be1dd66 Add mechanism for QgsMapLayerConfigWidgetFactory to create sub widgets
which are embedded into the raster layer temporal properties widget
2021-03-25 04:48:31 +10:00
Nyall Dawson
8c0b98d095 Add a mechanism for data providers to supply QgsMapLayerConfigWidgetFactory
via their GUI metadata

Allows providers to create layer properties pages, giving us a nice
way to keep provider-specific logic out of the layer properties
classes.
2021-03-25 04:48:31 +10:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
Nyall Dawson
c6370c7f52
Speed up QGIS compilation by removing all Qt Module-wide includes
Refs https://www.kdab.com/beware-of-qt-module-wide-includes/
2021-03-05 11:23:15 +10:00
Samweli
fd9ddcedd8 rebased on master and addressed review comments 2021-02-17 07:17:16 +10:00
Samweli
a3883761cf add support for plugin dialogs raster layer properties 2021-02-17 07:17:16 +10:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Alessandro Pasotti
02552e489a Raster shader: store label precision 2020-11-09 15:40:43 +01:00
Alessandro Pasotti
414d938117 Fix raster paletted and pseudocolor various issues 2020-11-05 12:11:24 +01:00
Alessandro Pasotti
dec0af6b65 Store unmodified double value in widget items
Also add a custom delegate.

Try to fix #39757
2020-11-03 12:18:15 +01:00
Nyall Dawson
81a9db9f57 [sipify] Fix creation of cross references 2020-06-15 13:43:58 +10:00
Nyall Dawson
4744696d5a Correctly update temporal properties widgets after loading styles 2020-05-20 03:47:59 +10:00
Nyall Dawson
d98defec1a [feature] Add basic temporal handling support for vector layers
This exposes some basic temporal capabilities for vector layers:
- static time range for layer (to match raster layer possibilities), this
sets a single static time range which applies to the whole layer. ALL
features from the layer will be shown whenever the canvas time
overlaps the layer time range
- "Single field with datetime": Allows selection of a single date
or datetime field from the layer. Features will be shown whenever
this field value is within the canvas time range
- "Separate Fields for Start and End Date/Time": Allows selection
of start and end date/datetime fields from the layer. Features will
be shown whenever the time interval calculated from these fields
overlaps the canvas time range

Some known limitations/inefficiencies:
- currently only date/datetime fields can be used. This was done
to simplify the format handling and avoid the need to worry about
string fields with different datetime formats. In future we should
allow selection of string fields and allow users to enter a custom
datetime format string
- unlike the Time Manager plugin approach, the approach taken here
is to rely completely on QGIS expressions and feature requests to
do the filtering (Time Manager uses layer filter strings and attempts
to set a native SQL filter syntax so that filtering is done on the
backend). This is intentional, because it provides a unified filter
approach regardless of the provider used (i.e. we don't need to worry
about the different SQL syntaxes used natively by the different
providers). The beauty of feature request expression compilation
**should** mean that the QGIS expressions are magically turned into
native backend queries, BUUUUUUUUUUUT... because we lack QGIS expression
support for date time literals, we currently rely on the "to_datetime"
expression function and coerce everything through strings. None of
the expression compilers handle this function, so currently ALL
filtering is done on the QGIS side. We need to add functions for
optimised datetime literal creation, and then ensure that the different
compilers correctly map these literals across to the backend
filter syntax to allow all the filtering work to be done on the database
side...

So currently, performance is much worse with large layers compared
to Time Manager. But, the advantage is that we can use the native
temporal framework and have vector layers animated alongside mesh
and raster layers!
2020-05-08 11:46:46 +10:00
Martin Dobias
be98e2f0f6 [FEATURE] Raster layer contour renderer
This new renderer draws contour lines that are calculated on the fly
from the source raster band. It is possible to set interval of contour
lines and symbol used for drawing.

In addition there is support for "index contours" - contour lines
with higher interval, typically drawn with a wider line symbol.

If we generate contour lines on input raster block with the same size as our
output raster block, the generated lines would contain too much detail.
This detail can be reduced by the "downscale" factor - this will request
lower resolution of the source raster.
2020-03-31 08:51:54 +02:00
Nyall Dawson
8bca81838e [processing] Port Raster Band parameter to new widget wrapper API 2020-03-31 01:06:48 +10:00
Nyall Dawson
059e29328f Move raster temporal properties to new tab, fix inconsistent margins
in all raster layer properties pages, and make clicking the temporal
indicator icon go straight to the layer's temporal property page
2020-03-13 18:06:02 +10:00
Nyall Dawson
6f92b12f3d Cleanup raster temporal capabilities/layer classes 2020-03-12 20:06:25 +10:00
Samweli
51b475f689 added checks for possible null temporal capabilities 2020-03-05 18:41:35 +10:00
Samweli
2517b566d1 suggested changes from the review 2020-03-05 18:41:35 +10:00
Vincent Cloarec
30569bce1f Move QgsRasterLayerProperties class to the gui API
Motivation :
Move the QgsRasterLayerProperties class to the GUI API.
So, this class could be used using the QGIS API, notably for standalone applications.

The instance of this class was dependent, since QGIS 3.8, from the QgisApp instance, when calling the askUserForDatumTransform(). As this method, defines a title and only call QgsDatumTransformDialog::run() method from the gui API, this PR purpose to :
2020-01-02 13:02:32 +10:00
Nyall Dawson
107b48a430 Add NULLPTR macro for use in doxygen comments
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)

Makes for nicer dox for both c++ and Python!
2019-02-27 09:41:11 +10:00
Nyall Dawson
a7ca08784c Nullptr consistency in dox 2019-02-27 09:41:11 +10:00
Nyall Dawson
b6d66becab Sipify 2019-02-27 09:41:11 +10:00
Nyall Dawson
519a30f10c Standardise dox for signals 2019-02-26 03:24:31 +10:00
Peter Petrik
4f8c9e18ab also use color ramp shader widget for pseudo color renderer (#7358) 2018-07-06 08:23:29 +07:00
Peter Petrik
252e41d3dc fix travis issues: docs, sip, test 2018-06-26 11:07:45 +02:00
Peter Petrik
aeea184890 [mesh] [feature] App widgets for styling mesh layers
- Adding datasets to mesh layer from properties panel
- Information and source panel in properties panel
- Selection of active dataset (properties or styling panel)
- Styling of contours/scalars (properties or styling panel)
- Styling of mesh frame (properties or styling panel)
- Styling of vector arrows (properties or styling panel)
2018-06-26 08:50:19 +02:00
Nyall Dawson
f8bc97030b Remove extra space added before first line of docstring 2018-05-28 08:22:11 +10:00
Nyall Dawson
1c615c15cc More documentation compliance
Use Qt style "returns .." tense instead of "return ..", and lock
this in with a documentation compliance unit test
2018-05-25 15:09:00 +10:00
Nyall Dawson
2cb8a33884 Fix broken see also links 2018-05-25 11:16:18 +10:00