Before this commit, the stacked diagram properties were taken as a basis, losing valuable diagram settings in the process.
Note this reverts commit 2f9a0758b309ef162d6390b7411cba71af3375be
From the nmea specifications it is clear that the talker ID
does not have to start with 'G'. Accordingly remove ALL these
incorrect hardcoded checks against (a very small subset) of
known talker IDs, and permit any two-character string
as a valid talker ID
Fixes connection to NMEA devices which use "IN" for
talker ID (and others)
This adds two functions to setup clip planes on a 3d scene:
- enableClipping() to enable opengl clipping
- disableClipping() to disable opengl clipping
The `enableClipping()` function achieves 3 things:
- it stores the clipping plane equations
- it adds clip planes to the framegraph
- it enables the clipping on the material of the existing entities
`disableClipping()` does the opposite things.
The clip planes equations need to be stored to handle the dynamic
addition of new entities. Indeed, when a new entity is added, clipping
needs to be enabled on its material if necessary. This is achieved
in `finalizeNewEntity` which is called on all new entities.
However, this is not true for the terrain entity. That's why,
`mTerrain` now listens to the `newEntityCreated` signal to call
`handleClippingOnEntity()`.
Fix an unreported issue with WMS client ignoring the advertised tile
size from GetCapabilities (because the raster iterator always used
its own hardcoded default).
A new method was added to retrieve this information from data providers
only implemented for WMS at the moment.
The test has been reformatted for consistency with other core tests
by moving the implementation outside of the class. The actual change is
the addition of TestQgsWmsProvider::testMaxTileSize().
Funded by: M.O.S.S. Computer Grafik Systeme GmbH https://www.moss.de/
We had two different(!!!!) implementations for equality operator
for QgsPointXY, with different logic (one handled empty points,
the other didn't). This compiled only because one was not marked
as const. So we'd get a DIFFERENT equality check logic depending
on whether or not the first point was const... eeek!
Remove the duplicate one, mark the better one as const
Instead of always calculating the scale along the bottom of the
map, expose a choice of methods to the user (along bottom,
middle, top, or average of the three measurements)
For new scalebars, default to the average method, which better
handles the scenario where the scale at the top or bottom of
the map cannot be calculated (eg when the top/bottom of the map
falls just outside valid areas for the map's crs)
This fixes one of the most common scenarios which cause scale
bar widths to blow out to massive sizes
Refs #55240
When the aggregate uses variables, we need to ensure that the
cache key correctly considers the current value of ALL those
variables. Otherwise we'll return incorrect results when
an expression is re-evaluated after changing the variable
value for the context.
Fixes use of aggregate function with @symbol_label in legends.
Fixes#58221