Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Staged 3.16.9 backports #43235

Merged
merged 69 commits into from
Jun 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
69fcfb3
Manual backport of #42383
uclaros May 1, 2021
fefb265
Ensure tests run on queued_ltr_backports PRs
nyalldawson May 16, 2021
5886bcb
[vector file writer] Fix another FID corner scenario (fixes #34613)
nirvn May 7, 2021
d88918b
[editor widgets] Fix external resource's image not cleared when brows…
nirvn May 9, 2021
0306fa6
[editor widgets] Avoid infinite image resize loop
nirvn May 9, 2021
38a3fac
Add missing documentation
nirvn May 9, 2021
59ce82a
[Server] Fix the selection method in server renderer
rldhont Apr 12, 2021
78714b6
[Tests] QGIS Server access control and Postgres layers
rldhont May 11, 2021
c9f1d42
[Tests][Server] Remove print('CTEST_FULL_OUTPUT') and duplicated line
rldhont May 17, 2021
2cc9263
[windows] Fix form macro encoding from file on windows
elpaso May 17, 2021
7e6f050
[Postgres] Use IN clause instead of OR for whereClause on text primary
troopa81 May 5, 2021
6e7c519
[Processing] Fix getParameterFromString to get Vector Layer data type…
rldhont May 7, 2021
8f74542
[Processing] Fix specific exception type in getParameterFromString
rldhont May 10, 2021
da9b0fa
Fix SIP issue with return results from calculateStatistics
elpaso May 21, 2021
ca20a98
[WFS provider] Do not issue full layer download when requesting featu…
rouault May 21, 2021
d1ac81a
[OGR provider] Fix conflict between layers using same OGR datasource …
rouault May 24, 2021
8a687ee
Make QgsMapCanvas a QgsExpressionContextGenerator
nyalldawson May 24, 2021
e23923e
Ensure correct expression context is used in map select tools,
nyalldawson May 24, 2021
33069d6
Also set correct expression context on feature request
nyalldawson May 24, 2021
da444ce
Sipify
nyalldawson May 26, 2021
eec4dc5
Fix incorrect handling of data type in grass raster data provider
nyalldawson May 19, 2021
408af51
Fix qgsinterpolator and qgstininterpolator with NULL value (#43302)
vcloarec May 29, 2021
1953b24
Update tests/src/analysis/testqgsinterpolator.cpp
rouault May 29, 2021
49d14ad
Update tests/src/analysis/testqgsinterpolator.cpp
rouault May 29, 2021
ab6b4fe
Use a safer approach to update renderers after symbol levels are changed
nyalldawson May 25, 2021
4823f04
Code cleanup and modernization
nyalldawson May 25, 2021
f6bfaa8
Fix memory leaks in renderer widgets
nyalldawson May 25, 2021
6d1c55f
Don't show symbol levels actions in renderer widgets for renderers
nyalldawson May 25, 2021
f07dff0
Fix build
nyalldawson May 26, 2021
0212796
Sipify
nyalldawson May 26, 2021
ba29f22
Don't try to render font marker symbols in massive font sizes
nyalldawson May 28, 2021
1a66c03
fix auto populating when input param is QgsProcessingParameterMapLayer
nicogodet Jun 1, 2021
05482f9
[symbols] Fix marker symbol bounds incorrectly include bounds of
nyalldawson May 28, 2021
a76f330
Fix Python module enviroment setup on Windows
komima May 25, 2021
9155604
[Postgres] Fixes #42778 : don't quote integer array elements to match…
troopa81 Jun 1, 2021
3a87085
fix convertToCurve not converting CURVEPOLYGON (failing test case)
olivierdalang Jun 1, 2021
0183563
fix convertToCurve not converting CURVEPOLYGON
olivierdalang Jun 1, 2021
6d0d78f
[PyQGIS] Fixes qgis#42488 : Fix QgsFeatureFilterModel SIP interface
troopa81 Jun 2, 2021
dce2205
Fixes #40117 : Copy CRS to clipboard when copying selected features
troopa81 Jun 3, 2021
21c1ad4
[Geometry checker] Fix the error resolution ui. Fixes #42489
lbartoletti Jun 4, 2021
8a87f18
Fixes missing icon for geometry checker plugin. Fixes #42708
lbartoletti Jun 3, 2021
fac1f67
BTW use the svg icon
lbartoletti Jun 3, 2021
fcb897d
remove the png icon
lbartoletti Jun 3, 2021
c9ce031
fix build
lbartoletti Jun 3, 2021
61e5ced
Fixes #33108 : Fix displayed array list in query builder
troopa81 Jun 2, 2021
4f0f73d
[processing][grass] Fix r.proj in Windows
agiudiceandrea Jun 3, 2021
0b4d51d
Add test for GRASS r.proj alg
agiudiceandrea Jun 4, 2021
8c8b613
reinstate QWTPOLAR_LIBRARY. Fixes #41910
lbartoletti Jun 4, 2021
236322d
Do not set initial attr values for default clause
elpaso Jun 7, 2021
7efef38
Update src/app/qgsfeatureaction.cpp
elpaso Jun 7, 2021
5ab7852
[expression] Allow use of (and return null to) index operator against…
nirvn Jun 9, 2021
fac0450
Fix papercut in rule based labeling widget where it's possible
nyalldawson Jun 2, 2021
fbd4e26
Fix it's impossible to change a rule based labeling "else" rule
nyalldawson Jun 2, 2021
1e3aae0
Fix build
nyalldawson Jun 5, 2021
4cb8343
Fix #43539, backport from #43579
domi4484 Jun 10, 2021
9dd43af
[locator] add open form action, automatically open form for non geome…
3nids Jun 10, 2021
0882f5b
more precise tooltips for buttons in relation editor
3nids Jun 11, 2021
1a55c81
[temporal] Fix filter generation for vector temporal layers
nyalldawson Jun 7, 2021
6dac89b
Use more explicit variable name for filter range
nyalldawson Jun 9, 2021
8cb1737
Fix temporal fields reset if previously set to no value
nyalldawson Jun 9, 2021
4f13845
fix mesh calculator IF operator
vcloarec Jun 15, 2021
c7beb55
test for mesh calculator IF operator and temporal dataset group
vcloarec Jun 16, 2021
1962879
An error message is displayed when an auxiliary layer cannot be created
pblottiere Jun 17, 2021
c57d45b
add a is2DClosed test
lbartoletti Jun 7, 2021
009b649
Adds information when a line is 2D closed but Z are differents. While…
lbartoletti Jun 7, 2021
c2fb851
Indicates z
lbartoletti Jun 7, 2021
f3541e7
adds test from #43582
lbartoletti Jun 7, 2021
6c85256
is2DClosed -> isClosed2D and fix a typo
lbartoletti Jun 8, 2021
6f47833
remove boundingBoxIntersects which was not present in the original pr
lbartoletti Jun 18, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/code_layout.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
- release-**
- queued_ltr_backports
pull_request:
branches:
- master
- release-**
- queued_ltr_backports

jobs:
documentation_checks:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/macos-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ on:
branches:
- master
- release-**
- queued_ltr_backports
paths:
- 'src/**'
- 'external/**'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ on:
branches:
- master
- release-**
- queued_ltr_backports
paths:
- 'src/**'
- 'external/**'
Expand Down
12 changes: 8 additions & 4 deletions python/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,14 @@ def setupenv():

with open(envfile) as f:
for line in f:
linedata = line.split("=")
name = linedata[0]
data = linedata[1]
os.environ[name] = data
line = line.rstrip("\n")
if line.startswith("#") or not line:
continue
try:
env_key, env_value = line.split("=", maxsplit=1)
os.environ[env_key] = env_value
except ValueError:
pass


if os.name == 'nt':
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,9 @@ Returns a short, friendly display name for a ``statistic``, suitable for use in
.. versionadded:: 3.12
%End

static QMap<QgsZonalStatistics::Statistic, QVariant> calculateStatistics( QgsRasterInterface *rasterInterface, const QgsGeometry &geometry, double cellSizeX, double cellSizeY, int rasterBand, QgsZonalStatistics::Statistics statistics );


static QMap<int, QVariant> calculateStatisticsInt( QgsRasterInterface *rasterInterface, const QgsGeometry &geometry, double cellSizeX, double cellSizeY, int rasterBand, QgsZonalStatistics::Statistics statistics ) /PyName=calculateStatistics/;
%Docstring
Calculates the specified ``statistics`` for the pixels of ``rasterBand``
in ``rasterInterface`` (a raster layer :py:func:`~QgsZonalStatistics.dataProvider` ) within polygon ``geometry``.
Expand Down
13 changes: 13 additions & 0 deletions python/core/auto_generated/geometry/qgscurve.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,19 @@ Returns the end point of the curve.
virtual bool isClosed() const /HoldGIL/;
%Docstring
Returns ``True`` if the curve is closed.

.. seealso:: :py:func:`isClosed2D`
%End

virtual bool isClosed2D() const /HoldGIL/;
%Docstring
Returns true if the curve is closed.

Unlike isClosed. It looks only for XY coordinates.

.. seealso:: :py:func:`isClosed`

.. versionadded:: 3.20
%End

virtual bool isRing() const /HoldGIL/;
Expand Down
4 changes: 4 additions & 0 deletions python/core/auto_generated/geometry/qgslinestring.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,10 @@ segment in the line.

virtual bool removeDuplicateNodes( double epsilon = 4 * DBL_EPSILON, bool useZValues = false );

virtual bool isClosed() const /HoldGIL/;

virtual bool isClosed2D() const /HoldGIL/;


QVector< QgsVertexId > collectDuplicateNodes( double epsilon = 4 * DBL_EPSILON, bool useZValues = false ) const;
%Docstring
Expand Down
3 changes: 3 additions & 0 deletions python/core/auto_generated/qgsfeaturefiltermodel.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ Allows specifying one value that does not need to match the filter criteria but
still be available in the model.
%End

private:
virtual void requestToReloadCurrentFeature( QgsFeatureRequest &request );

};

/************************************************************************
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ occur before or within the map's temporal range should be rendered).
.. seealso:: :py:func:`accumulateFeatures`
%End

QString createFilterString( const QgsVectorLayerTemporalContext &context, const QgsDateTimeRange &range ) const;
QString createFilterString( QgsVectorLayerTemporalContext context, const QgsDateTimeRange &range ) const;
%Docstring
Creates a QGIS expression filter string for filtering features within
the specified ``context`` to those within the specified time ``range``.
Expand Down
7 changes: 5 additions & 2 deletions python/gui/auto_generated/qgsmapcanvas.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@



class QgsMapCanvas : QGraphicsView
class QgsMapCanvas : QGraphicsView, QgsExpressionContextGenerator
{
%Docstring
Map canvas is a class for displaying all GIS data types on a canvas.
Expand Down Expand Up @@ -694,7 +694,7 @@ overrides for expression evaluation for the map canvas render.
%End


QgsExpressionContextScope *defaultExpressionContextScope() /Factory/;
QgsExpressionContextScope *defaultExpressionContextScope() const /Factory/;
%Docstring
Creates a new scope which contains default variables and functions relating to the map canvas.

Expand All @@ -705,6 +705,9 @@ Creates a new scope which contains default variables and functions relating to t
.. versionadded:: 3.4
%End

virtual QgsExpressionContext createExpressionContext() const;


void setSegmentationTolerance( double tolerance );
%Docstring
Sets the segmentation tolerance applied when rendering curved geometries
Expand Down
7 changes: 7 additions & 0 deletions python/gui/auto_generated/qgspixmaplabel.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,16 @@ determined from the width with the given aspect ratio.
%End

public slots:

void setPixmap( const QPixmap & );
virtual void resizeEvent( QResizeEvent * );


void clear();
%Docstring
Clears any label contents.
%End

};

/************************************************************************
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Constructor
:param style:
:param renderer: the mask renderer (will not take ownership)
%End
~Qgs25DRendererWidget();

virtual QgsFeatureRenderer *renderer();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ from the XML file with a matching name.
.. versionadded:: 2.9
%End

protected:
virtual void setSymbolLevels( const QgsLegendSymbolList &levels, bool enabled );


protected slots:

virtual void pasteSymbolToSelection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ Refreshes the ranges for the renderer.
The ``reset`` argument is deprecated and has no effect.
%End

protected:
virtual void setSymbolLevels( const QgsLegendSymbolList &levels, bool enabled );


protected slots:

virtual void pasteSymbolToSelection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Constructor
:param style:
:param renderer: the mask renderer (will not take ownership)
%End
~QgsHeatmapRendererWidget();

virtual QgsFeatureRenderer *renderer();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Constructor
:param style:
:param renderer: the mask renderer (will not take ownership)
%End
~QgsInvertedPolygonRendererWidget();

virtual QgsFeatureRenderer *renderer();

Expand Down
17 changes: 16 additions & 1 deletion python/gui/auto_generated/symbology/qgsrendererwidget.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ This method should be called whenever the renderer is actually set on the layer.
virtual void setDockMode( bool dockMode );



signals:

void layerVariablesChanged();
Expand All @@ -81,9 +82,12 @@ vector layers have been changed. Will request the parent dialog
to re-synchronize with the variables.
%End

void symbolLevelsChanged();
void symbolLevelsChanged() /Deprecated/;
%Docstring
Emitted when the symbol levels settings have been changed.

.. deprecated:: QGIS 3.16.9
-- no longer emitted.
%End

protected:
Expand All @@ -104,6 +108,17 @@ Creates widget to setup data-defined size legend.
Returns newly created panel - may be ``None`` if it could not be opened. Ownership is transferred to the caller.

.. versionadded:: 3.0
%End

virtual void setSymbolLevels( const QList< QgsLegendSymbolItem > &levels, bool enabled );
%Docstring
Sets the symbol levels for the renderer defined in the widget.

The ``levels`` argument defines the updated list of symbols with rendering passes set.

The ``enabled`` arguments specifies if symbol levels should be enabled for the renderer.

.. versionadded:: 3.16.9
%End

protected slots:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ Opens the dialog for refining a rule using ranges
%End
void refineRuleScalesGui( const QModelIndexList &index );

virtual void setSymbolLevels( const QList< QgsLegendSymbolItem > &levels, bool enabled );


QgsRuleBasedRenderer::Rule *currentRule();

virtual QList<QgsSymbol *> selectedSymbols();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,12 @@ class QgsSingleSymbolRendererWidget : QgsRendererWidget

virtual void setContext( const QgsSymbolWidgetContext &context );


virtual void setDockMode( bool dockMode );

%Docstring
Set the widget in dock mode which tells the widget to emit panel
widgets and not open dialogs

:param dockMode: ``True`` to enable dock mode.
%End
protected:
virtual void setSymbolLevels( const QList< QgsLegendSymbolItem > &levels, bool enabled );


};

Expand Down
46 changes: 36 additions & 10 deletions python/gui/auto_generated/symbology/qgssymbollevelsdialog.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,29 @@ A widget which allows the user to modify the rendering order of symbol layers.
#include "qgssymbollevelsdialog.h"
%End
public:

QgsSymbolLevelsWidget( QgsFeatureRenderer *renderer, bool usingSymbolLevels, QWidget *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsSymbolLevelsWidget
%End

QgsSymbolLevelsWidget( const QgsLegendSymbolList &symbols, bool usingSymbolLevels, QWidget *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsSymbolLevelsWidget, which takes a list of ``symbols`` to show in the dialog.

.. versionadded:: 3.20
%End

bool usingLevels() const;
%Docstring
Returns whether the level ordering is enabled
%End

QgsLegendSymbolList symbolLevels() const;
%Docstring
Returns the current legend symbols with rendering passes set, as defined in the widget.

.. versionadded:: 3.20
%End

void setForceOrderingEnabled( bool enabled );
Expand All @@ -41,21 +56,18 @@ Sets whether the level ordering is always forced on and hide the checkbox (used
%End

public slots:
void apply();
%Docstring
Apply button
%End

protected:



void apply() /Deprecated/;
%Docstring
Apply button.

private:
QgsSymbolLevelsWidget();
.. deprecated:: QGIS 3.20.
Use symbolLevels() and manually apply the changes to the renderer as appropriate.
%End

};


class QgsSymbolLevelsDialog : QDialog
{
%Docstring
Expand All @@ -76,6 +88,20 @@ Constructor for QgsSymbolLevelsDialog.

void setForceOrderingEnabled( bool enabled );

bool usingLevels() const;
%Docstring
Returns whether the level ordering is enabled.

.. versionadded:: 3.20
%End

QgsLegendSymbolList symbolLevels() const;
%Docstring
Returns the current legend symbols with rendering passes set, as defined in the widget.

.. versionadded:: 3.20
%End

};


Expand Down
2 changes: 1 addition & 1 deletion python/plugins/processing/algs/grass7/ext/r_proj.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def processInputs(alg, parameters, context, feedback):
if isWindows():
# TODO: make some tests under a non POSIX shell
alg.commands.append('set regVar=')
alg.commands.append('for /f "delims=" %%a in (\'r.proj -g input="{}" location="{}"\') do @set theValue=%%a'.format(
alg.commands.append('for /f "delims=" %%a in (\'r.proj -g input^="{}" location^="{}"\') do @set regVar=%%a'.format(
grassName, newLocation))
alg.commands.append('g.region -a %regVar%')
else:
Expand Down
Loading