@@ -786,7 +786,7 @@ int QgsPalLabeling::prepareLayer( QgsVectorLayer* layer, QSet<int>& attrIndices,
786
786
max_scale = lyr.scaleMax ;
787
787
}
788
788
789
- Layer* l = mPal ->addLayer ( layer->id ().toLocal8Bit ().data (),
789
+ Layer* l = mPal ->addLayer ( layer->id ().toUtf8 ().data (),
790
790
min_scale, max_scale, arrangement,
791
791
METER, priority, lyr.obstacle , true , true );
792
792
@@ -823,7 +823,7 @@ int QgsPalLabeling::prepareLayer( QgsVectorLayer* layer, QSet<int>& attrIndices,
823
823
824
824
int QgsPalLabeling::addDiagramLayer ( QgsVectorLayer* layer, QgsDiagramLayerSettings *s )
825
825
{
826
- Layer* l = mPal ->addLayer ( layer->id ().append ( " d" ).toLocal8Bit ().data (), -1 , -1 , pal::Arrangement ( s->placement ), METER, s->priority , s->obstacle , true , true );
826
+ Layer* l = mPal ->addLayer ( layer->id ().append ( " d" ).toUtf8 ().data (), -1 , -1 , pal::Arrangement ( s->placement ), METER, s->priority , s->obstacle , true , true );
827
827
l->setArrangementFlags ( s->placementFlags );
828
828
829
829
s->palLayer = l;
@@ -1065,13 +1065,15 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
1065
1065
continue ;
1066
1066
}
1067
1067
1068
+ // layer names
1069
+ QString layerNameUtf8 = QString::fromUtf8 (( *it )->getLayerName () );
1068
1070
if ( palGeometry->isDiagram () )
1069
1071
{
1070
1072
// render diagram
1071
1073
QHash<QgsVectorLayer*, QgsDiagramLayerSettings>::iterator dit = mActiveDiagramLayers .begin ();
1072
1074
for ( dit = mActiveDiagramLayers .begin (); dit != mActiveDiagramLayers .end (); ++dit )
1073
1075
{
1074
- if ( dit.key () && dit.key ()->id ().append ( " d" ) == ( *it )-> getLayerName () )
1076
+ if ( dit.key () && dit.key ()->id ().append ( " d" ) == layerNameUtf8 )
1075
1077
{
1076
1078
QgsPoint outPt = xform->transform (( *it )->getX (), ( *it )->getY () );
1077
1079
dit.value ().renderer ->renderDiagram ( palGeometry->diagramAttributes (), context, QPointF ( outPt.x (), outPt.y () ) );
@@ -1082,14 +1084,14 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
1082
1084
if ( mLabelSearchTree )
1083
1085
{
1084
1086
// for diagrams, remove the additional 'd' at the end of the layer id
1085
- QString layerId = ( *it )-> getLayerName () ;
1087
+ QString layerId = layerNameUtf8 ;
1086
1088
layerId.chop ( 1 );
1087
1089
mLabelSearchTree ->insertLabel ( *it, QString ( palGeometry->strId () ).toInt (), layerId, true );
1088
1090
}
1089
1091
continue ;
1090
1092
}
1091
1093
1092
- const QgsPalLayerSettings& lyr = layer (( *it )-> getLayerName () );
1094
+ const QgsPalLayerSettings& lyr = layer ( layerNameUtf8 );
1093
1095
QFont fontForLabel = lyr.textFont ;
1094
1096
QColor fontColor = lyr.textColor ;
1095
1097
double bufferSize = lyr.bufferSize ;
@@ -1268,7 +1270,7 @@ void QgsPalLabeling::drawLabel( pal::LabelPosition* label, QPainter* painter, co
1268
1270
QgsPoint outPt = xform->transform ( label->getX (), label->getY () );
1269
1271
1270
1272
// TODO: optimize access :)
1271
- const QgsPalLayerSettings& lyr = layer ( label->getLayerName () );
1273
+ const QgsPalLayerSettings& lyr = layer ( QString::fromUtf8 ( label->getLayerName () ) );
1272
1274
QString text = (( QgsPalGeometry* )label->getFeaturePart ()->getUserGeometry () )->text ();
1273
1275
QString txt = ( label->getPartId () == -1 ? text : QString ( text[label->getPartId ()] ) );
1274
1276
0 commit comments