QGIS API Documentation  3.8.0-Zanzibar (11aff65)
Public Types | Public Member Functions | List of all members
QgsAbstractValidityCheck Class Referenceabstract

Abstract base class for individual validity checks. More...

#include <qgsabstractvaliditycheck.h>

Public Types

enum  Type { TypeLayoutCheck = 0, TypeUserCheck = 10000 }
 Check types. More...
 

Public Member Functions

virtual ~QgsAbstractValidityCheck ()=default
 
virtual int checkType () const =0
 Returns the type of the check. More...
 
virtual QgsAbstractValidityCheckcreate () const =0
 Creates a new instance of the check and returns it. More...
 
virtual QString id () const =0
 Returns the unique ID of the check. More...
 
virtual bool prepareCheck (const QgsValidityCheckContext *context, QgsFeedback *feedback)
 Prepares the check for execution, and returns true if the check can be run. More...
 
virtual QList< QgsValidityCheckResultrunCheck (const QgsValidityCheckContext *context, QgsFeedback *feedback)=0
 Runs the check and returns a list of results. More...
 

Detailed Description

Abstract base class for individual validity checks.

Validity checks represent objects which can run a test using a QgsValidityCheckContext, and return the results of the check via QgsValidityCheckResult objects.

Checks can be used for many different use cases, e.g. validating a layout's contents before allowing an export to occur, or validating the contents of a Processing model (and warning if required plugin based providers are not available or if compulsory algorithm parameters have not been populated).

Subclasses must indicate the type of check they represent via the checkType() method. When checks are performed, all the registered checks with a matching check type are performed sequentially. The check type also dictates the subclass of the QgsValidityCheckContext which is given to the subclass' runCheck method.

Checks must be registered in the application's QgsValidityCheckRegistry, which is accessible via QgsApplication::validityCheckRegistry().

See also
QgsValidityCheckRegistry
Since
QGIS 3.6

Definition at line 92 of file qgsabstractvaliditycheck.h.

Member Enumeration Documentation

◆ Type

Check types.

Enumerator
TypeLayoutCheck 

Print layout validity check, triggered on exporting a print layout.

TypeUserCheck 

Starting point for custom user types.

Definition at line 98 of file qgsabstractvaliditycheck.h.

Constructor & Destructor Documentation

◆ ~QgsAbstractValidityCheck()

virtual QgsAbstractValidityCheck::~QgsAbstractValidityCheck ( )
virtualdefault

Member Function Documentation

◆ checkType()

virtual int QgsAbstractValidityCheck::checkType ( ) const
pure virtual

Returns the type of the check.

◆ create()

virtual QgsAbstractValidityCheck* QgsAbstractValidityCheck::create ( ) const
pure virtual

Creates a new instance of the check and returns it.

◆ id()

virtual QString QgsAbstractValidityCheck::id ( ) const
pure virtual

Returns the unique ID of the check.

This is a non-translated, non-user visible string identifying the check.

◆ prepareCheck()

virtual bool QgsAbstractValidityCheck::prepareCheck ( const QgsValidityCheckContext context,
QgsFeedback feedback 
)
inlinevirtual

Prepares the check for execution, and returns true if the check can be run.

This method is always called from the main thread, and subclasses can implement it to do preparatory steps which are not thread safe (e.g. obtaining feature sources from vector layers). It is followed by a call to runCheck(), which may be performed in a background thread.

Individual calls to prepareCheck()/runCheck() are run on a new instance of the check (see create()), so subclasses can safely store state from the prepareCheck() method ready for the subsequent runCheck() method.

The context argument gives the wider in which the check is being run.

Definition at line 137 of file qgsabstractvaliditycheck.h.

◆ runCheck()

virtual QList< QgsValidityCheckResult > QgsAbstractValidityCheck::runCheck ( const QgsValidityCheckContext context,
QgsFeedback feedback 
)
pure virtual

Runs the check and returns a list of results.

If the check is "passed" and no warnings or errors are generated, then an empty list should be returned.

This method may be called in a background thread, so subclasses should take care to ensure that only thread-safe methods are used. It is always preceded by a call to prepareCheck().

If a check needs to perform non-thread-safe tests, these should be implemented within prepareCheck() and stored in the subclass instance to be returned by this method.

The context argument gives the wider in which the check is being run.


The documentation for this class was generated from the following file: