Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgssymbollayerreference.cpp 3 : : --------------------- 4 : : begin : July 2019 5 : : copyright : (C) 2019 by Hugo Mercier / Oslandia 6 : : email : infos at oslandia 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 : : 16 : : #include "qgssymbollayerreference.h" 17 : : #include "qgis.h" 18 : : 19 : 0 : QString symbolLayerReferenceListToString( const QgsSymbolLayerReferenceList &lst ) 20 : : { 21 : 0 : QStringList slst; 22 : 0 : for ( const QgsSymbolLayerReference &ref : lst ) 23 : : { 24 : 0 : QStringList indexPathStr; 25 : 0 : for ( int index : ref.symbolLayerId().symbolLayerIndexPath() ) 26 : : { 27 : 0 : indexPathStr.append( QString::number( index ) ); 28 : : } 29 : 0 : slst.append( QStringLiteral( "%1,%2,%3" ).arg( ref.layerId(), ref.symbolLayerId().symbolKey(), indexPathStr.join( ',' ) ) ); 30 : 0 : } 31 : 0 : return slst.join( ';' ); 32 : 0 : } 33 : : 34 : 0 : QgsSymbolLayerReferenceList stringToSymbolLayerReferenceList( const QString &str ) 35 : : { 36 : 0 : QgsSymbolLayerReferenceList lst; 37 : 0 : QStringList slst; 38 : 0 : const QStringList split = str.split( ';' ); 39 : 0 : for ( QString tuple : split ) 40 : : { 41 : : // We should have "layer_id,symbol_key,symbol_layer_index0,symbol_layer_index1,..." 42 : 0 : QStringList elements = tuple.split( ',' ); 43 : 0 : if ( elements.size() >= 3 ) 44 : : { 45 : 0 : QVector<int> indexPath; 46 : 0 : for ( int i = 2; i < elements.size(); i++ ) 47 : : { 48 : 0 : indexPath.append( elements[i].toInt() ); 49 : 0 : } 50 : 0 : lst.append( QgsSymbolLayerReference( elements[0], QgsSymbolLayerId( elements[1], indexPath ) ) ); 51 : 0 : } 52 : 0 : } 53 : 0 : return lst; 54 : 0 : }