QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
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  if ( mMethods.contains( method->id() ) )
42  return false;
43 
44  mMethods.insert( method->id(), method );
45  return true;
46 }
47 
49 {
50  QgsClassificationMethod *method = mMethods.value( id, new QgsClassificationCustom() );
51  return method->clone();
52 }
53 
54 QMap<QString, QString> QgsClassificationMethodRegistry::methodNames() const
55 {
56  QMap<QString, QString> methods;
57  for ( const QgsClassificationMethod *method : qgis::as_const( mMethods ) )
58  methods.insert( method->name(), method->id() );
59  return methods;
60 }
61 
62 QIcon QgsClassificationMethodRegistry::icon( const QString &id ) const
63 {
64  QgsClassificationMethod *method = mMethods.value( id, nullptr );
65  if ( method )
66  return method->icon();
67  else
68  return QIcon();
69 }
70 
QgsClassificationMethod * method(const QString &id)
Returns a new instance of the method for the given id.
QgsClassificationEqualInterval is an implementation of QgsClassificationMethod for equal intervals...
virtual QIcon icon() const
The icon of the method.
virtual QString id() const =0
The id of the method as saved in the project, must be unique in registry.
QgsClassificationCustom is a dummy implementation of QgsClassification which does not compute any bre...
QgsClassificationJenks is an implementation of QgsClassificationMethod for natural breaks based on Je...
bool addMethod(QgsClassificationMethod *method)
Adds a method to the registry Returns false if a method with same id already exists.
QgsClassificationQuantile is an implementation of QgsClassificationMethod based on quantiles...
virtual QgsClassificationMethod * clone() const =0
Returns a clone of the method.
QIcon icon(const QString &id) const
Returns the icon for a given method id.
QgsClassificationPrettryBreaks is an implementation of QgsClassificationMethod for pretty breaks...
QgsClassificationCustom is an implementation of QgsClassificationMethod based on standard deviation...
QgsClassificationMethod is an abstract class for implementations of classification methods...
QMap< QString, QString > methodNames() const
Returns a map <name, id> of all registered methods.
virtual QString name() const =0
The readable and translate name of the method.
Implementation of a logarithmic scale method.