91513 Commits

Author SHA1 Message Date
Nyall Dawson
feeb2b418b [vectortiles] Never try to request every tile in a zoom level
In certain circumstances (eg map in geographic CRS, including
+/-180 long or +/- 90 lat within map bounds), the extent
passed to the map layer renderers is a maximal extent indicating
that the generic map renderer code could not successfully
reproject the map extent to the layer's crs.

This is BAD for vector tiles, as it results in us trying to
fetch EVERY SINGLE TILE IN THE WORLD for a given zoom level!!!1!

Add special logic to the vector tile renderer to catch this
situation is attempt to determine a minimal extent to fetch, or
fail gracefully.
2025-04-24 12:00:42 +02:00
Nyall Dawson
1efd5df8d6 Add method to return total number of tiles in a QgsTileRange 2025-04-24 12:00:42 +02:00
Nyall Dawson
67036b670f Add isMaximal method to QgsRectangle 2025-04-24 12:00:42 +02:00
Nyall Dawson
741e698b65 Apply suggestions from code review
Co-authored-by: Alexander Bruy <alexander.bruy@gmail.com>
2025-04-24 16:00:08 +10:00
Nyall Dawson
6b40530fd4 Test masks 2025-04-24 16:00:08 +10:00
Nyall Dawson
edb1f79022 Update test to new infrastructure 2025-04-24 16:00:08 +10:00
Nyall Dawson
5a4dba585d Fix clang tidy warnings 2025-04-24 16:00:08 +10:00
Nyall Dawson
10c09465fa Cleanup const iteration 2025-04-24 16:00:08 +10:00
Nyall Dawson
7cdfacc06c Better memory safety in WMS provider block
Don't needlessly create image on the heap
2025-04-24 16:00:08 +10:00
Nyall Dawson
931e681b89 Fix visible gaps in between xyz tiles
In some circumstances there can be a visible <=2 pixel-wide gap
between adjacent tiles in xyz layers

Rework the image destination rect calculation to an integer
based calculation, as we'll always be drawing the tiles using
a painter with a pixel-based image device, and ensure that
the destination rect is always expanded to the nearest pixel
(instead of shrunk)
2025-04-24 16:00:08 +10:00
Nyall Dawson
b114e0aef3 Fix duplicate parameter warning in gdal rasterize algorithm 2025-04-24 10:19:56 +10:00
Nyall Dawson
ad05e0316f
Fix crashes when application clipboard has no mime data
E.g. when running with QT_QPA_PLATFORM=offscreen
2025-04-24 01:17:46 +10:00
Benoit D.-M. - oslandia
c892205a18
Debug texture render view (#61367)
* feat(3d/renderView): extract texture preview render pass to dedicated files

* fix(3d): replace QgsPreviewQuad by QgsRenderPassQuad

As they are quite the same, we remove QgsPreviewQuad and replace all usage by QgsRenderPassQuad

* fixup! feat(3d/renderView): extract texture preview render pass to dedicated files

* fix(3D/renderview): complete doc on registerRenderView

* fixup! fix(3D/renderview): complete doc on registerRenderView

* fixup! feat(3d/renderView): extract texture preview render pass to dedicated files

* fixup! feat(3d/renderView): extract texture preview render pass to dedicated files

* fix(framegraph): simplify if with ternary operator

* fix(3d): cleanup some extra headers

* fixup! feat(3d/renderView): extract texture preview render pass to dedicated files
2025-04-23 14:15:39 +02:00
bdm-oslandia
1f0328cff6 fix(test): add expected results for PyQgsWebEnginePage test to ensure Qt6 compatibility 2025-04-23 20:43:26 +10:00
qgis-bot
ea98b95b75 auto sipify 🍺 2025-04-23 02:22:06 +00:00
Nyall Dawson
aa0fac012c Add icon for query history 2025-04-23 12:19:10 +10:00
Nyall Dawson
f6d740e9db Fix docs 2025-04-23 12:19:10 +10:00
Nyall Dawson
531d92a652 Fix misc checks 2025-04-23 12:19:10 +10:00
Nyall Dawson
04913a119f Add top level action for database query history
Adds an entry to the app "Database" menu for "Query History",
which opens the database query history dialog
2025-04-23 12:19:10 +10:00
Nyall Dawson
2dd042cd93 Show history panel in execute sql dialog 2025-04-23 12:19:10 +10:00
Nyall Dawson
8c1cdcfad0 Rework QgsQueryResultWidget so that it uses a QgsPanelWidgetStack 2025-04-23 12:19:10 +10:00
Nyall Dawson
65c711b540 Default new globe views to '3D Globe #' names
Makes it easier to distinguish them in the 3d views list
2025-04-23 11:24:14 +10:00
Alexander Bruy
2d1f318bf9 update Processing algorithms to use new enum values 2025-04-23 07:39:24 +10:00
Alexander Bruy
85d191038e better names for enum values 2025-04-23 07:39:24 +10:00
Alexander Bruy
f186288b41 fix TIN and IDW interpolation algorithms and tests 2025-04-23 07:39:24 +10:00
Alexander Bruy
cb89558792 convert interpolation enums to enum classes 2025-04-23 07:39:24 +10:00
Alexander Bruy
29a612f9c1 convert kernel density estimation enums to enum classes 2025-04-23 07:39:24 +10:00
Alexander Bruy
adf4f08001 convert raster calculator result enum to enum class 2025-04-23 07:39:24 +10:00
bdm-oslandia
77f46e0659 Pdf4QtLibCore: add explicite call to std::atomic::load() function to ensure c++15 compatibility
This fix the use of the deleted copy constructor of std::atomic (since c++15).

see https://github.com/JakubMelka/PDF4QT/pull/266
2025-04-23 07:37:18 +10:00
bdm-oslandia
00fa0a411c Pdf4QtLibCore: fix CMakeList to ignore warning deprecated-literal-operator
see https://github.com/JakubMelka/PDF4QT/pull/260
2025-04-23 07:37:18 +10:00
bdm-oslandia
6164076dad Pdf4QtLibCore: fix CMakeList to ignore clang error unused-private-field 2025-04-23 07:37:18 +10:00
David Koňařík
b2972d4f2b Make changes per review suggestions 2025-04-23 07:36:41 +10:00
David Koňařík
8f33234255 Refactor 3D globe panning logic
Instead of raycasting based on a previously-captured depth buffer, which
only works well for featureless scenes, construct a virtual sphere and
intersect the mouse pointer's ray with that.
2025-04-23 07:36:41 +10:00
David Koňařík
f5d4c39334 Slightly improve 3D camera controller error handling 2025-04-23 07:36:41 +10:00
Mathieu Pellerin
95a2acb910 [themes] Fix ugly top padding for title-less Q*GroupBox 2025-04-22 20:34:37 +07:00
Alexander Bruy
49c7aecbb1
Merge pull request #61555 from kikitte/master
clear features in QgsIdentifyResultsDialog::clear to avoid memory leak
2025-04-22 12:23:02 +01:00
Alexander Bruy
b2bdc4a2a1
Merge pull request #61563 from alexbruy/processing-checkvalidity-cpp
port Check Validity algorithm to C++
2025-04-22 11:13:17 +01:00
Martin Dobias
1a62581ca1 Add subtle shading of globe for better depth perception 2025-04-22 11:53:59 +10:00
qgis-bot
969fa6bfc1 auto sipify 🍺 2025-04-22 01:48:25 +00:00
Nyall Dawson
94831606a8 Update src/ui/qgslabelremoveduplicatesettingswidgetbase.ui
Co-authored-by: Nicolas Godet <39594821+nicogodet@users.noreply.github.com>
2025-04-22 11:45:25 +10:00
Nyall Dawson
1335475042 Hide label spacing, duplicate removal setting on GEOS < 3.10
Replace the widgets with a label stating "not available on this
QGIS installation"
2025-04-22 11:45:25 +10:00
Nyall Dawson
c0a3e90ecf Fix misc tests 2025-04-22 11:45:25 +10:00
Nyall Dawson
298f03dca8 Fix build on older geos 2025-04-22 11:45:25 +10:00
Nyall Dawson
b8712c51c0 Add missing files 2025-04-22 11:45:25 +10:00
Nyall Dawson
c2ee323793 [feature] Add labeling setting to prevent duplicate labels within xx mm
Improves the appearance of labels in situations like road networks,
where things like dual carriageways, service roads, etc can result
in many labels of the exact same text appearing close to each other.

When active, removes any labels with the exact same text (case
sensitive!) which are closer then this minimum distance.

The setting applies across layers, so duplicate text from ANY
layer will be considered.
2025-04-22 11:45:25 +10:00
Nyall Dawson
4d98f21d67 [feature] Add 'margin around labels' setting for labeling
Allows setting a margin around a layer's labels, which prevents
other labels from being placed closer than this margin distance
to the layer's labels.
2025-04-22 11:45:25 +10:00
Nyall Dawson
5b6151086d [pal] Ensure we always use the correct bounds when inserting features
into candidate spatial indexes

We need to use the expanded bounds for candidate conflicts, not
the actual label bounds. Otherwise rules like minimum distance
between labels won't work, as potential conflicts aren't getting
returned when searching the candidate spatial indexes.
2025-04-22 11:45:25 +10:00
Nyall Dawson
72474ab4a0 [pal] Cache LabelPosition::boundingBoxForCandidateConflicts
As well as avoiding multiple re-calculation of this, caching ensures
that we ALWAYS return the same bounds, which is crucial when we need
to remove the position from a spatial index
2025-04-22 11:45:25 +10:00
Nyall Dawson
255d4b3ce2 Add method to test if QgsMapUnitScale is null 2025-04-22 11:45:25 +10:00
Alex
4a0ea094fb show right file 2025-04-22 11:37:22 +10:00