QGIS API Documentation 3.27.0-Master (f261cc1f8b)
qgsclassificationmethodregistry.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsclassificationmethodregistry.h
3 ---------------------
4 begin : September 2019
5 copyright : (C) 2019 by Denis Rouzaud
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 <QIcon>
17
19
20// classification methods
29
31{
39}
40
42{
43 qDeleteAll( mMethods );
44}
45
47{
48 if ( mMethods.contains( method->id() ) )
49 return false;
50
51 mMethods.insert( method->id(), method );
52 return true;
53}
54
56{
57 QgsClassificationMethod *method = mMethods.value( id, new QgsClassificationCustom() );
58 return method->clone();
59}
60
62{
63 QMap<QString, QString> methods;
64 for ( const QgsClassificationMethod *method : std::as_const( mMethods ) )
65 methods.insert( method->name(), method->id() );
66 return methods;
67}
68
69QIcon QgsClassificationMethodRegistry::icon( const QString &id ) const
70{
71 QgsClassificationMethod *method = mMethods.value( id, nullptr );
72 if ( method )
73 return method->icon();
74 else
75 return QIcon();
76}
77
QgsClassificationCustom is a dummy implementation of QgsClassification which does not compute any bre...
QgsClassificationEqualInterval is an implementation of QgsClassificationMethod for equal intervals.
Implementation of a fixed interval classification.
QgsClassificationJenks is an implementation of QgsClassificationMethod for natural breaks based on Je...
Implementation of a logarithmic scale method.
bool addMethod(QgsClassificationMethod *method)
Adds a method to the registry Returns false if a method with same id already exists.
QgsClassificationMethod * method(const QString &id)
Returns a new instance of the method for the given id.
QIcon icon(const QString &id) const
Returns the icon for a given method id.
QMap< QString, QString > methodNames() const
Returns a map <name, id> of all registered methods.
QgsClassificationMethod is an abstract class for implementations of classification methods.
virtual QgsClassificationMethod * clone() const =0
Returns a clone of the method.
virtual QString id() const =0
The id of the method as saved in the project, must be unique in registry.
virtual QString name() const =0
The readable and translate name of the method.
virtual QIcon icon() const
The icon of the method.
QgsClassificationPrettyBreaks is an implementation of QgsClassificationMethod for pretty breaks.
QgsClassificationQuantile is an implementation of QgsClassificationMethod based on quantiles.
QgsClassificationCustom is an implementation of QgsClassificationMethod based on standard deviation.