Now that our minimum VS studio version allowed supports std::round,
we should use that in place of Qt's qRound method.
Because:
- it doesn't truncate to int, resulting in unpredictable
behaviour (refs #16925)
- better to stick to standard c++ methods wherever possible,
since they're likely better supported and optimised by the
compilers
- it's a tiny reduction to the barrier for entry to QGIS
development (I'm sick of pointing out the need to use
qRound during PR reviews!)
- Use layer paths instead of layer ids where possible, since they are persistent
- Don't wrap in QgsProcessingFeatureSourceDefinition/QgsProcessingOutputLayerDefinition
if we can avoid it
These classes are unused in the master QGIS code, and are
unmaintained and with no unit tests or other QA, and
have inflexible API (e.g. always requiring writing outputs
to shapefiles)
They all have equivalent algorithms available via Processing
(where the algorithms are unit tested and maintained). We should
be pushing all QGIS api users to use the Processing algorithms
instead.
* use AUTORCC to avoid locked qrc_images.cpp during build of gui tests
* bump minimum version of cmake to 3.0.0 for AUTORCC
* suppress some warnings in sip bindings
* suppress unreachable warnings and some more
* split sip files in more parts to suppress warning BK4504
* also remove old WITH_INTERNAL_YAML from travis
Previously grids would always take precedence when both a grid
and guide were within tolerance of a point.
Now, guides will always take precedence - since they have been
manually set by users we make the assumption that they have
been explicitly placed at highly desirable snapping locations,
and should be selected over the general grid.
Additionally, grid snapping was previously only done if BOTH
x and y could be snapped to the grid. We now snap to the nearest
grid line for x/y separately. This means if a point is close
to a vertical grid line but not a horizontal one it will still
snap to that nearby vertical grid line.
to all other pages
This allows resetting all other pages to use the guide configuration
for the current page. Since guides are now single page only (required
to handle mixed page size/orientation layouts), this is a shortcut
to allow guide configuration to be setup on a single page and then
easily transferred to all other pages in the layout.