These failing tests are actually revealing an issue with the atlas
map API, which can't be fixed without a break.
This API will be replaced for QGIS3.0 or the layout refactor work.
This test checks that the coverage of the API docs does not drop
below a preset threshold (initially set at the current doc coverage)
If new members are added without documentation, then the coverage
will drop and this test will fail. Hopefully over time we can slowly
increase this threshold until documentation coverage reaches an
acceptable level.
In field calc opened from attribute table, when changing attributes
there is a series of signals: layer emits attributeValueChanged(),
cache forces update of attribute table data, which at one point calls
layer.isModified(), emitting beforeModifiedCheck() - in turn calling
save() of attribute form, which would change first feature's new attribute
to a bogus value. This recursive change of attribute values corrupts
the undo stack.
The fix pre-sets the feature's attribute so that no dummy entry is
added to the undo stack.
In the future we should probably try to improve the whole cascade
to avoid bugs like this one:
1. if possible, make emission of edit signals "safe", so a slot can
do more editing calls without corrupting undo stack
2. get rid of beforeModifiedCheck() signal as it adds quite surprising
behavior (and overhead) to what should be a simple check
The combination of touches+overlaps+contains is not enough if input layer
(where selection should be done) is completely within selection layer.
I have reintroduced "intersects" predicate and made it default.
The processing toolbox has an improved (fixed?) version but fTools
were not adapted at the same time
With one or more empty layers, this would lead to a weird blinking due to progress
dialog being opened when snapping to empty layers is active.
The fix adds a flag in the point locator, so the index is not rebuilt unless there
are some features in the layer