@@ -291,3 +291,56 @@ const char *QgsColorBrewerPalette::BREWER_STRING =
291291 " PuBuGn-7-246,239,247 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,100,80\n "
292292 " PuBuGn-8-255,247,251 236,226,240 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,100,80\n "
293293 " PuBuGn-9-255,247,251 236,226,240 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,108,89 1,70,54" ;
294+
295+ QList<QColor> QgsColorBrewerPalette::listSchemeColors ( const QString &schemeName, int colors )
296+ {
297+ QList<QColor> pal;
298+ QString palette ( BREWER_STRING );
299+ const QStringList list = palette.split ( QChar ( ' \n ' ) );
300+ for ( const QString &entry : list )
301+ {
302+ QStringList items = entry.split ( QChar ( ' -' ) );
303+ if ( items.count () != 3 || items[0 ] != schemeName || items[1 ].toInt () != colors )
304+ continue ;
305+ const QStringList colors = items[2 ].split ( QChar ( ' ' ) );
306+ for ( const QString &clr : colors )
307+ {
308+ pal << QgsSymbolLayerUtils::parseColor ( clr );
309+ }
310+ }
311+ return pal;
312+ }
313+
314+ QStringList QgsColorBrewerPalette::listSchemes ()
315+ {
316+ QStringList schemes;
317+
318+ QString palette ( BREWER_STRING );
319+ const QStringList list = palette.split ( QChar ( ' \n ' ) );
320+ for ( const QString &entry : list )
321+ {
322+ QStringList items = entry.split ( QChar ( ' -' ) );
323+ if ( items.count () != 3 )
324+ continue ;
325+ if ( !schemes.contains ( items[0 ] ) )
326+ schemes << items[0 ];
327+ }
328+ return schemes;
329+ }
330+
331+ QList<int > QgsColorBrewerPalette::listSchemeVariants ( const QString &schemeName )
332+ {
333+ QList<int > variants;
334+
335+ QString palette ( BREWER_STRING );
336+ const QStringList list = palette.split ( QChar ( ' \n ' ) );
337+ for ( const QString &entry : list )
338+ {
339+ QStringList items = entry.split ( QChar ( ' -' ) );
340+ if ( items.count () != 3 || items[0 ] != schemeName )
341+ continue ;
342+ variants << items[1 ].toInt ();
343+ }
344+
345+ return variants;
346+ }
0 commit comments