QGIS API Documentation  2.99.0-Master (b698612)
qgscolorbrewerpalette.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscolorbrewerpalette.h
3  ---------------------
4  begin : November 2009
5  copyright : (C) 2009 by Martin Dobias
6  email : wonder dot sk at gmail dot com
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 #ifndef QGSCOLORBREWERPALETTE_H
16 #define QGSCOLORBREWERPALETTE_H
17 
18 #include "qgis_core.h"
19 #include <QList>
20 #include <QColor>
21 
22 #include "qgssymbollayerutils.h"
23 
27 class CORE_EXPORT QgsColorBrewerPalette
28 {
29  public:
30  static QList<QColor> listSchemeColors( const QString &schemeName, int colors )
31  {
32  QList<QColor> pal;
33  QString palette( BREWER_STRING );
34  QStringList list = palette.split( QChar( '\n' ) );
35  Q_FOREACH ( const QString &entry, list )
36  {
37  QStringList items = entry.split( QChar( '-' ) );
38  if ( items.count() != 3 || items[0] != schemeName || items[1].toInt() != colors )
39  continue;
40  QStringList colors = items[2].split( QChar( ' ' ) );
41  Q_FOREACH ( const QString &clr, colors )
42  {
43  pal << QgsSymbolLayerUtils::parseColor( clr );
44  }
45  }
46  return pal;
47  }
48 
49  static QStringList listSchemes()
50  {
51  QStringList schemes;
52 
53  QString palette( BREWER_STRING );
54  QStringList list = palette.split( QChar( '\n' ) );
55  Q_FOREACH ( const QString &entry, list )
56  {
57  QStringList items = entry.split( QChar( '-' ) );
58  if ( items.count() != 3 )
59  continue;
60  if ( !schemes.contains( items[0] ) )
61  schemes << items[0];
62  }
63  return schemes;
64  }
65 
66  static QList<int> listSchemeVariants( const QString &schemeName )
67  {
68  QList<int> variants;
69 
70  QString palette( BREWER_STRING );
71  QStringList list = palette.split( QChar( '\n' ) );
72  Q_FOREACH ( const QString &entry, list )
73  {
74  QStringList items = entry.split( QChar( '-' ) );
75  if ( items.count() != 3 || items[0] != schemeName )
76  continue;
77  variants << items[1].toInt();
78  }
79 
80  return variants;
81  }
82 
83  // extracted ColorBrewer data
84  static const char *BREWER_STRING;
85 };
86 
87 #endif // QGSCOLORBREWERPALETTE_H
static const char * BREWER_STRING
static QList< QColor > listSchemeColors(const QString &schemeName, int colors)
static QColor parseColor(const QString &colorStr, bool strictEval=false)
Attempts to parse a string as a color using a variety of common formats, including hex codes...
static QList< int > listSchemeVariants(const QString &schemeName)
static QStringList listSchemes()