two separate new options
This setting was ambiguous in meaning -- it could be interpreted
as either:
"I don't care about overlapping labels, use them when
you have no other choice"
OR
"I want to see labels for EVERYTHING in this layer, and I don't
care what you have to do to show me those"
This leads to situations like those discussed in #41043, where some
users interpret the setting as the first meaning and get confused
when eg. a curved label line layer starts showing horizontal placements
for some features which couldn't otherwise be labeled (eg short
lines).
So, split the setting into two new options (checkboxes) with explicit, clear
distinction:
- "Allow overlapping labels if unavoidable": This setting means labels
can be overlapping, if there's no other option. It does NOT gaurantee
that all features in the layer will have labels, because other
constraints (such as lines too short to fit a label's text) will still
be respected and may prevent labels for the feature.
- "Allow inferior fallback placements": This mode permits features
to fallback to worse placement options when there's no other choice,
e.g. when a line is too short to fit a curved label text then the
label may be placed horizontally just over the feature's center
point.
The combination of checking BOTH options WILL gaurantee that
all features in the layer are labelled, albeit with both overlapping
labels and the degraded placements!
Fixes#41043
transformations, such as those which happen across different
celestial bodies
If set, the flag indicates that no user-facing warnings should be
shown and instead the transform should be short circuited
* Implement saving stats as an EVLR
* Fix layout tests
* don't save statistics unless copc was generated by pdal
* Address Martin reviews
* Address reviews
* Only read stats EVLR and do not store count
* merge cleanup
* Address reviews
- Remove waiting for task to finish in ~QgsPointCloudLayer
- Fix failing ept provider test when maximum threads is set to 1.
- make PointCloudStatisticsCalculationState into enum class
- move AttributeStatistics outside QgsPointCloudStatistics
position when drawing the marker on the map canvas to indicate the
cursor position
Otherwise things are misleading -- the elevation profile will show
snapped results yet the corresponding canvas point may be slightly
displaced from what the elevation plot is showing
owned by a parent QObject
E.g. QGraphicsItem subclasses are not QObjects themselves, but
are owned by a QObject QGraphicsScene. Depending on whether the
graphics item is deleted first or the scene, we can end up with
a double-free situation.
Fix this by creating a QObjectParentUniquePtr smart pointer which
is automatically nulled if the parent QObject (e.g. the QGraphicsScene)
is deleted first.
(Adapted from existing QObjectUniquePtr logic and logic in
QgsSnapIndicator)