QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
analysis
vector
geometry_checker
qgsgeometrycheckregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsgeometrycheckregistry.cpp
3
--------------------------------------
4
Date : September 2018
5
Copyright : (C) 2018 Matthias Kuhn
6
Email : matthias@opengis.ch
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsgeometrycheckregistry.h
"
17
18
#include "
qgis.h
"
19
#include "
qgsgeometrycheckfactory.h
"
20
21
QgsGeometryCheckRegistry::~QgsGeometryCheckRegistry
()
22
{
23
qDeleteAll( mGeometryCheckFactories );
24
}
25
26
QgsGeometryCheck
*
QgsGeometryCheckRegistry::geometryCheck
(
const
QString &checkId,
QgsGeometryCheckContext
*context,
const
QVariantMap &geometryCheckConfig )
27
{
28
QgsGeometryCheckFactory
*factory = mGeometryCheckFactories.value( checkId );
29
if
( factory )
30
return
factory->
createGeometryCheck
( context, geometryCheckConfig );
31
else
32
return
nullptr
;
33
}
34
35
QList<QgsGeometryCheckFactory *>
QgsGeometryCheckRegistry::geometryCheckFactories
(
QgsVectorLayer
*layer,
QgsGeometryCheck::CheckType
type,
QgsGeometryCheck::Flags
flags )
const
36
{
37
QList<QgsGeometryCheckFactory *> factories;
38
for
(
QgsGeometryCheckFactory
*factory : mGeometryCheckFactories )
39
{
40
if
( factory->checkType() == type && ( factory->flags() & flags ) == flags && factory->isCompatible( layer ) )
41
factories << factory;
42
}
43
return
factories;
44
}
45
46
void
QgsGeometryCheckRegistry::registerGeometryCheck
(
QgsGeometryCheckFactory
*checkFactory )
47
{
48
mGeometryCheckFactories.insert( checkFactory->
id
(), checkFactory );
49
}
QgsGeometryCheckContext
Base configuration for geometry checks.
Definition
qgsgeometrycheckcontext.h:32
QgsGeometryCheckFactory
A factory for geometry checks.
Definition
qgsgeometrycheckfactory.h:43
QgsGeometryCheckFactory::id
virtual QString id() const =0
The unique id for this geometry check.
QgsGeometryCheckFactory::createGeometryCheck
virtual QgsGeometryCheck * createGeometryCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration) const =0
Creates a new geometry check with context and configuration.
QgsGeometryCheckRegistry::geometryCheck
QgsGeometryCheck * geometryCheck(const QString &checkId, QgsGeometryCheckContext *context, const QVariantMap &geometryCheckConfig)
Create a new geometryCheck of type checkId Pass the context and geometryCheckConfiguration to the new...
Definition
qgsgeometrycheckregistry.cpp:26
QgsGeometryCheckRegistry::registerGeometryCheck
void registerGeometryCheck(QgsGeometryCheckFactory *checkFactory)
Registers a new geometry check factory.
Definition
qgsgeometrycheckregistry.cpp:46
QgsGeometryCheckRegistry::~QgsGeometryCheckRegistry
~QgsGeometryCheckRegistry()
Destructor.
Definition
qgsgeometrycheckregistry.cpp:21
QgsGeometryCheckRegistry::geometryCheckFactories
QList< QgsGeometryCheckFactory * > geometryCheckFactories(QgsVectorLayer *layer, QgsGeometryCheck::CheckType type, QgsGeometryCheck::Flags flags=QgsGeometryCheck::Flags()) const
Returns all geometry check factories that are compatible with layer and have all of the flags set.
Definition
qgsgeometrycheckregistry.cpp:35
QgsGeometryCheck
Base class for geometry checks.
Definition
qgsgeometrycheck.h:93
QgsGeometryCheck::Flags
QFlags< Flag > Flags
Definition
qgsgeometrycheck.h:172
QgsGeometryCheck::CheckType
CheckType
The type of a check.
Definition
qgsgeometrycheck.h:149
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
qgis.h
qgsgeometrycheckfactory.h
qgsgeometrycheckregistry.h
Generated on
for QGIS API Documentation by
1.17.0