This method allows to determine if a feature source has content or not
(or maybe).
This method works for "generator" sources as well as for "collection"
sources.
Collection sources like QgsVectorDataProvider which allow to easily and
in a cheap way determine if features are available can return
FeaturesAvailable or NoFeaturesAvailable, generators will return
FeaturesMaybeAvailable.
QgsVectorDataProvider also implements an empty() method.
- Mark as dirty when renaming a layer/group
- Better approach to mark as dirty when changing CRS
- Better approach to mark as dirty when changing subset string
Since it's not directly possible to pop the last command off
an QUndoStack (the command which is destroyed/discard by calling
this method), we add a dummy obsolete command to force this to occur.
Pushing the new command deletes the destroyed one, and since the new
command is obsolete it's automatically deleted by the undo stack.
In some cases it is useful to add extra information to the symbols in the legend.
This work allows definition of additional labels in vector layer properties > Legend tab.
parented to their owner QgsMapLayer.
This ensures that if the layer is moved to a different thread with
QObject::moveToThread(), then those children are also considered
by QObject::moveToThread() and correctly also moved to the new
target thread. This fixes broken connections (and likely other
issues) caused when moving layers between threads (such as is
done when a background processing algorithm completes).
Fixes#18005
are enabled
Instead of clearing the labeling configuration in order to
disable labels, we need a way to disable them without
losing the configuration. Labels are oftern temporarily
switched on/off as an analysis tool, and we don't want the
settings to be lost as a result
Refs #17656
Before we had two checks - equals() and isGeosEqual() which
performed the exact same check (since equals() called the geos
equality test)
Since the geos equality test is a slow, topological test, which
considers two geometries equal if their component edges overlap,
but disregards ordering of vertices this is not always what we
want. There's also the issue that geos cannot consider m values
when testing the geometries, so two geometries with different
m values would be reported equal.
So, now calling QgsGeometry::equals performs a very fast, strict
equality test where geometries are only equal if the have exactly
the same vertices, type, and order.
And swap most code which was calling the slow geos test to instead
use the fast strict native test.