In some cases canceling render jobs can take a long time. Eg when
using database layers over a sloooooow connection, canceling a job
can be blocked by minutes while waiting for the first batch of feature
fetching to finish. (Since eg postgres features are fetched in batches
of 2000 with no opportunity to abort mid-way through this).
This meant that while the first render allows the GUI to remain
responsive, any subsequent render operations which occured before
the first render completes locks up the whole ui until the first
render can finish cancellation.
With this change, the render cancelation happens with blocking.
It means that you can pan and zoom around a map over of slow
connection without any ui locks.
This replaces the older "OTF off" setting. If a project has
no projection set, then the following things happen:
- no reprojection is done while rendering - features are just
drawn using their raw coordinates
- ellipsoid, distance and area units, and coordinate display
are locked out.
- all measurements are done in unknown map units, and no conversion
is possible.
As well as addressing the use cases in which users disabled
OTF reprojection, this setting may also be useful for users
who use QGIS to create "non-earth" maps, such as RPG or fantasy
maps, or for microscopic analysis, or some other local reference
system not related to earth based projections.
In a post-OTF-disabled world these are no longer required. The
map units are dictated by the map units for the destination
CRS.
It's dangerous to separate these two properties as setting
the incorrect map units for a given CRS will result in
incorrect scale calculations.
Because
- OTF reprojection is mature and stable
- Should be no cost when not required - transforms are shortcut
when not required
- Reduces code complexity
- Canvas OTF support was being incorrectly used as a flag for
whether measurements should be made in ellipsoidal mode. Instead
the project's ellipsoid setting should be checked for this.
- Should simplify behavior for new users