88767 Commits

Author SHA1 Message Date
Nyall Dawson
93bce2ed76
Fix same-on-both sides checks 2024-11-20 15:49:03 +10:00
Nyall Dawson
ba07d876f8
Fix iterator mismatch 2024-11-20 15:45:53 +10:00
Nyall Dawson
a390b403a5
Fix some copy/paste errors identified by coverity scan 2024-11-20 15:31:03 +10:00
Alessandro Pasotti
3a1ccaeaee Update src/core/expression/qgsexpressionfunction.cpp 2024-11-20 05:57:52 +10:00
Alessandro Pasotti
552b63a7e8 Fix crash executeGeomOverlay called without context
Fix unreported crash.
2024-11-20 05:57:52 +10:00
Jean Felder
04446f9d56 qgisapp: Ensure to properly delete 2D MapCanvasDock
When closing a 2D canvas dock, QGIS sometimes crashes. This is because
when the widget helper is closed, the canvas is closed. However, some
signals of the canvas widget may still be called after it is
called. Hence, the crash.

This issue is fixed by calling `deleteLater()` instead of `delete` to
ensure a proper deletion which properly takes into account the
signals.
2024-11-20 05:57:28 +10:00
Julien Cabieces
a34442d0f3
Merge pull request #59259 from Djedouas/snapping-intersection-freeze
Fix freeze on long indexation for snapping on intersections
2024-11-19 15:43:15 +01:00
qgis-bot
7d374b248e auto sipify 🍺 2024-11-19 11:09:39 +00:00
Nyall Dawson
0ead32eb41 Fix qt6 compatibility in test 2024-11-19 21:06:26 +10:00
Nyall Dawson
2abc9d92ca [sld] Don't try to write rules/categorizes without symbolizers
Only create rules/categorized categories/graduated ranges if the
associated symbol could be converted to SLD, and is not an "empty"
symbol.

Otherwise we do not generate a rule, as SLD spec requires a
Symbolizer element to be present.
2024-11-19 21:06:26 +10:00
Jacky Volpes
3b3af5791e Fix freeze on long indexation for snapping on intersections
If snap on intersections is enabled, this specific edge search with the
locator was not in relaxed mode, whereas the standard snapping is
happening in relaxed mode.

As a result, trying to use the snapping during the first indexation was
freezing QGIS while the indexation is happening, waiting for it to end.

On a layer where the indexation is longer than the timeout (30sec, i.e.
a WFS layer as in issue #51179), the locator stops abruptly and resets
itself, crashing the indexation and QGIS.
2024-11-19 11:09:31 +01:00
Mathieu Pellerin
52dd3047ac [expression] Add a to_bool() function to convert various value types into a boolean 2024-11-19 15:09:58 +07:00
Mathieu Pellerin
cdf7c82d7a [vector tiles] Handle 'to-boolean' mapboxgl expressions when importing styles 2024-11-19 15:09:40 +07:00
Nyall Dawson
0aca4bb1e3 Fix prompt for crs setting not working
We can't take the early exit path when calling QgsMapLayer::setCrs
with an invalid CRS if we need to trigger validation of the crs

Fixes #59480
2024-11-19 16:33:08 +10:00
qgis-bot
45a0abf3be auto sipify 🍺 2024-11-19 02:43:51 +00:00
Nyall Dawson
f446bda82a [optimisation] Greatly speed up clone of QgsSvgMarkerSymbolLayer
The old method was very inefficient, as it required a re-load and
re-parse of the associated SVG file content with every clone, only
for many of the parsed properties to be immediately overwritten.

Optimise by just directly copying members, avoiding all unnecessary
work.

This is frequently seen as a hotspot when profiling map renders,
as that involves cloning all symbol layers upfront.

Speeds up a benchtest cloning 100k markers from 4.3 seconds to
150ms.
2024-11-19 12:40:44 +10:00
Nyall Dawson
dec9db6ce7 Test masks 2024-11-19 12:40:27 +10:00
Nyall Dawson
6588aa3799 Ensure per-node legend size override overrides all other size settings
Setting an explicit size for a legend node should override all other settings,
including the heights calculated from minimum/maximum symbol size.
This is because explicit fixed sizes are PER NODE, and can be used as a last-resort
for users to manually adjust the sizing of one particular legend node
2024-11-19 12:40:27 +10:00
qgis-bot
c3432328fc auto sipify 🍺 2024-11-19 01:18:45 +00:00
Nyall Dawson
ca72c6a3ef Update src/core/textrenderer/qgstextrenderer.cpp
Co-authored-by: Mathieu Pellerin <nirvn.asia@gmail.com>
2024-11-19 11:15:34 +10:00
Nyall Dawson
6bdba31fc4 Test mask updates 2024-11-19 11:15:34 +10:00
Nyall Dawson
fc74827dee Test mask updates 2024-11-19 11:15:34 +10:00
Nyall Dawson
aa6b3413e5 Test mask updates 2024-11-19 11:15:34 +10:00
Nyall Dawson
7a17557e64 Refactor QgsTextRenderer internal methods, optimise buffer render
Rework internals of QgsTextRenderer horizontal text rendering,
so that:

1. It's easier to read, cleaning up years of accumulated cruft
2. Split out bits into smaller functions
3. Reduce the amount of duplicate code for text layout, so that
there's only one function responsible for horizontal text layout
instead of multiple
4. Add shortcut optimisations for rendering text + buffer/shadow
at the same time, instead of always drawing these completely
independantly of each other and incurring the cost of text path
calculation multiple times for the same bit of text. In a simple
benchtest this reduces the time required for rendering many
text fragments with buffers from 40 seconds to 27 seconds.

There's still more we could do here, but it's a start...
2024-11-19 11:15:34 +10:00
Denis Rouzaud
5eae1ce90d
Merge pull request #59474 from qgis/3nids-patch-1
[sipify] fixes
2024-11-18 22:31:27 +01:00
Denis Rouzaud
3ddf3917f6
follow-up 2024-11-18 15:38:52 +01:00
Denis Rouzaud
8a453a7bb5
fix nested enums 2024-11-18 15:22:24 +01:00
Denis Rouzaud
a135e21727
[sipify] allow namespace/class spec in static const declarations 2024-11-18 10:00:48 +01:00
Alessandro Pasotti
25ec551124 Fix auth SSL errors cache
Fix #59402
2024-11-16 08:00:37 +10:00
qgis-bot
c41be037d9 auto sipify 🍺 2024-11-15 21:31:40 +00:00
Harrissou Sant-anna
6648c9596c s/if/whether 2024-11-16 07:28:29 +10:00
Harrissou Sant-anna
ac3c06d3ad Rewording and formatting in PyQGIS docs 2024-11-16 07:28:29 +10:00
Harrissou Sant-anna
05a072109a Update URLS referencing the official QGIS website
not all are redirected or available in the website
2024-11-16 07:27:49 +10:00
Harrissou Sant-anna
e7c04f17e6 Apply changes from suggestion 2024-11-16 07:27:14 +10:00
Nathan Woodrow
a73fce75a0 Add tr() for expression parser error 2024-11-16 07:27:14 +10:00
Nathan Woodrow
6374a99b2e Fix #50761 - More human error on expression parser error 2024-11-16 07:27:14 +10:00
Mathieu Pellerin
0f03a3d482 [code editors] Fix python console editor's modified content lost when switching to another app 2024-11-16 07:25:39 +10:00
Denis Rouzaud
3e085e496b move read/write XML for QgsMapThemeCollection::MapThemeRecord inside class 2024-11-16 07:24:58 +10:00
David Koňařík
f7b21861e2 Improve test_provider_eptprovider 2024-11-14 21:37:25 +01:00
David Koňařík
ed4a681b22 Merge remote and local QgsEptPointCloudIndex classes 2024-11-14 21:37:25 +01:00
Julien Cabieces
643a7a2491
Merge pull request #59440 from elpaso/bugfix-gh43992-sqlite-expression-collapse
Collapse OR nodes into IN
2024-11-14 14:56:39 +01:00
Alessandro Pasotti
72e215b0b0 Remove feature request storage 2024-11-14 10:21:50 +01:00
Jacky Volpes
625857b166 fix(QgsVectorLayer-dependencies): don't emit too many dataChanged signals 2024-11-14 10:20:47 +01:00
Jacky Volpes
578952150c fix(QgsVectorLayer-dependencies): emit dataChanged on commitChanges
Now when a feature is externally modified on save (database trigger for
example), the dataChanged signal is emitted for indexes and caches
reconstruction.
2024-11-14 10:20:47 +01:00
Alessandro Pasotti
74c5089403 No recursion 2024-11-14 10:17:16 +01:00
Alessandro Pasotti
dccbed2cc0 Address PR comments: also check for literal EQ columnref 2024-11-14 10:00:29 +01:00
Withalion
7333fafd73 Fix copcprovider tests and clang-tidy warning 2024-11-14 09:05:14 +01:00
Withalion
c9c4aadc74 Improve readability of if statement 2024-11-14 09:05:14 +01:00
Withalion
6872a37c87 Incorporate PR feedback 2024-11-14 09:05:14 +01:00
Withalion
e48f10cd44 Add human readable conversion of gps time 2024-11-14 09:05:14 +01:00