QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
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
6  email : [email protected]
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
24 #include "qgsclassificationjenks.h"
28 
30 {
37 }
38 
40 {
41  qDeleteAll( mMethods );
42 }
43 
45 {
46  if ( mMethods.contains( method->id() ) )
47  return false;
48 
49  mMethods.insert( method->id(), method );
50  return true;
51 }
52 
54 {
55  QgsClassificationMethod *method = mMethods.value( id, new QgsClassificationCustom() );
56  return method->clone();
57 }
58 
59 QMap<QString, QString> QgsClassificationMethodRegistry::methodNames() const
60 {
61  QMap<QString, QString> methods;
62  for ( const QgsClassificationMethod *method : qgis::as_const( mMethods ) )
63  methods.insert( method->name(), method->id() );
64  return methods;
65 }
66 
67 QIcon QgsClassificationMethodRegistry::icon( const QString &id ) const
68 {
69  QgsClassificationMethod *method = mMethods.value( id, nullptr );
70  if ( method )
71  return method->icon();
72  else
73  return QIcon();
74 }
75 
QgsClassificationMethod
QgsClassificationMethod is an abstract class for implementations of classification methods.
Definition: qgsclassificationmethod.h:88
qgsclassificationstandarddeviation.h
qgsclassificationcustom.h
QgsClassificationPrettyBreaks
QgsClassificationPrettryBreaks is an implementation of QgsClassificationMethod for pretty breaks.
Definition: qgsclassificationprettybreaks.h:29
QgsClassificationMethod::icon
virtual QIcon icon() const
The icon of the method.
Definition: qgsclassificationmethod.h:149
QgsClassificationMethodRegistry::method
QgsClassificationMethod * method(const QString &id)
Returns a new instance of the method for the given id.
Definition: qgsclassificationmethodregistry.cpp:53
qgsclassificationlogarithmic.h
qgsclassificationprettybreaks.h
QgsClassificationMethodRegistry::~QgsClassificationMethodRegistry
~QgsClassificationMethodRegistry()
Definition: qgsclassificationmethodregistry.cpp:39
QgsClassificationMethodRegistry::methodNames
QMap< QString, QString > methodNames() const
Returns a map <name, id> of all registered methods.
Definition: qgsclassificationmethodregistry.cpp:59
QgsClassificationEqualInterval
QgsClassificationEqualInterval is an implementation of QgsClassificationMethod for equal intervals.
Definition: qgsclassificationequalinterval.h:29
QgsClassificationQuantile
QgsClassificationQuantile is an implementation of QgsClassificationMethod based on quantiles.
Definition: qgsclassificationquantile.h:30
QgsClassificationMethod::clone
virtual QgsClassificationMethod * clone() const =0
Returns a clone of the method.
QgsClassificationCustom
QgsClassificationCustom is a dummy implementation of QgsClassification which does not compute any bre...
Definition: qgsclassificationcustom.h:29
QgsClassificationMethod::id
virtual QString id() const =0
The id of the method as saved in the project, must be unique in registry.
qgsclassificationjenks.h
QgsClassificationMethodRegistry::icon
QIcon icon(const QString &id) const
Returns the icon for a given method id.
Definition: qgsclassificationmethodregistry.cpp:67
QgsClassificationMethodRegistry::addMethod
bool addMethod(QgsClassificationMethod *method)
Adds a method to the registry Returns false if a method with same id already exists.
Definition: qgsclassificationmethodregistry.cpp:44
qgsclassificationequalinterval.h
QgsClassificationLogarithmic
Implementation of a logarithmic scale method.
Definition: qgsclassificationlogarithmic.h:29
QgsClassificationJenks
QgsClassificationJenks is an implementation of QgsClassificationMethod for natural breaks based on Je...
Definition: qgsclassificationjenks.h:29
QgsClassificationStandardDeviation
QgsClassificationCustom is an implementation of QgsClassificationMethod based on standard deviation.
Definition: qgsclassificationstandarddeviation.h:29
qgsclassificationquantile.h
QgsClassificationMethodRegistry::QgsClassificationMethodRegistry
QgsClassificationMethodRegistry()
Definition: qgsclassificationmethodregistry.cpp:29
qgsclassificationmethodregistry.h
QgsClassificationMethod::name
virtual QString name() const =0
The readable and translate name of the method.