@@ -726,7 +726,7 @@ int QgsPalLabeling::prepareLayer( QgsVectorLayer* layer, QSet<int>& attrIndices,
726726 max_scale = lyr.scaleMax ;
727727 }
728728
729- Layer* l = mPal ->addLayer ( layer->id ().toLocal8Bit ().data (),
729+ Layer* l = mPal ->addLayer ( layer->id ().toUtf8 ().data (),
730730 min_scale, max_scale, arrangement,
731731 METER, priority, lyr.obstacle , true , true );
732732
@@ -763,7 +763,7 @@ int QgsPalLabeling::prepareLayer( QgsVectorLayer* layer, QSet<int>& attrIndices,
763763
764764int QgsPalLabeling::addDiagramLayer ( QgsVectorLayer* layer, QgsDiagramLayerSettings *s )
765765{
766- Layer* l = mPal ->addLayer ( layer->id ().append ( " d" ).toLocal8Bit ().data (), -1 , -1 , pal::Arrangement ( s->placement ), METER, s->priority , s->obstacle , true , true );
766+ Layer* l = mPal ->addLayer ( layer->id ().append ( " d" ).toUtf8 ().data (), -1 , -1 , pal::Arrangement ( s->placement ), METER, s->priority , s->obstacle , true , true );
767767 l->setArrangementFlags ( s->placementFlags );
768768
769769 s->palLayer = l;
@@ -1003,13 +1003,15 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
10031003 continue ;
10041004 }
10051005
1006+ // layer names
1007+ QString layerNameUtf8 = QString::fromUtf8 (( *it )->getLayerName () );
10061008 if ( palGeometry->isDiagram () )
10071009 {
10081010 // render diagram
10091011 QHash<QgsVectorLayer*, QgsDiagramLayerSettings>::iterator dit = mActiveDiagramLayers .begin ();
10101012 for ( dit = mActiveDiagramLayers .begin (); dit != mActiveDiagramLayers .end (); ++dit )
10111013 {
1012- if ( dit.key () && dit.key ()->id ().append ( " d" ) == ( *it )-> getLayerName () )
1014+ if ( dit.key () && dit.key ()->id ().append ( " d" ) == layerNameUtf8 )
10131015 {
10141016 QgsPoint outPt = xform->transform (( *it )->getX (), ( *it )->getY () );
10151017 dit.value ().renderer ->renderDiagram ( palGeometry->diagramAttributes (), context, QPointF ( outPt.x (), outPt.y () ) );
@@ -1020,14 +1022,14 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
10201022 if ( mLabelSearchTree )
10211023 {
10221024 // for diagrams, remove the additional 'd' at the end of the layer id
1023- QString layerId = ( *it )-> getLayerName () ;
1025+ QString layerId = layerNameUtf8 ;
10241026 layerId.chop ( 1 );
10251027 mLabelSearchTree ->insertLabel ( *it, QString ( palGeometry->strId () ).toInt (), layerId, true );
10261028 }
10271029 continue ;
10281030 }
10291031
1030- const QgsPalLayerSettings& lyr = layer (( *it )-> getLayerName () );
1032+ const QgsPalLayerSettings& lyr = layer ( layerNameUtf8 );
10311033 QFont fontForLabel = lyr.textFont ;
10321034 QColor fontColor = lyr.textColor ;
10331035 double bufferSize = lyr.bufferSize ;
@@ -1206,7 +1208,7 @@ void QgsPalLabeling::drawLabel( pal::LabelPosition* label, QPainter* painter, co
12061208 QgsPoint outPt = xform->transform ( label->getX (), label->getY () );
12071209
12081210 // TODO: optimize access :)
1209- const QgsPalLayerSettings& lyr = layer ( label->getLayerName () );
1211+ const QgsPalLayerSettings& lyr = layer ( QString::fromUtf8 ( label->getLayerName () ) );
12101212
12111213 QString text = (( QgsPalGeometry* )label->getFeaturePart ()->getUserGeometry () )->text ();
12121214 QString txt = ( label->getPartId () == -1 ? text : QString ( text[label->getPartId ()] ) );
0 commit comments