@@ -1874,6 +1874,9 @@ bool QgsVectorLayer::readSymbology( const QDomNode& node, QString& errorMessage
18741874 int editable = editTypeElement.attribute ( " editable" , " 1" ).toInt ();
18751875 mFieldEditables .insert ( name, editable == 1 );
18761876
1877+ int labelOnTop = editTypeElement.attribute ( " labelontop" , " 0" ).toInt ();
1878+ mLabelOnTop .insert ( name, labelOnTop == 1 );
1879+
18771880 switch ( editType )
18781881 {
18791882 case ValueMap:
@@ -2185,6 +2188,7 @@ bool QgsVectorLayer::writeSymbology( QDomNode& node, QDomDocument& doc, QString&
21852188 editTypeElement.setAttribute ( " name" , it.key () );
21862189 editTypeElement.setAttribute ( " type" , it.value () );
21872190 editTypeElement.setAttribute ( " editable" , mFieldEditables [ it.key ()] ? 1 : 0 );
2191+ editTypeElement.setAttribute ( " labelontop" , mLabelOnTop [ it.key ()] ? 1 : 0 );
21882192
21892193 switch (( EditType ) it.value () )
21902194 {
@@ -3053,13 +3057,29 @@ bool QgsVectorLayer::fieldEditable( int idx )
30533057 return true ;
30543058}
30553059
3060+ bool QgsVectorLayer::labelOnTop ( int idx )
3061+ {
3062+ const QgsFields &fields = pendingFields ();
3063+ if ( idx >= 0 && idx < fields.count () )
3064+ return mLabelOnTop .value ( fields[idx].name (), false );
3065+ else
3066+ return false ;
3067+ }
3068+
30563069void QgsVectorLayer::setFieldEditable ( int idx, bool editable )
30573070{
30583071 const QgsFields &fields = pendingFields ();
30593072 if ( idx >= 0 && idx < fields.count () )
30603073 mFieldEditables [ fields[idx].name ()] = editable;
30613074}
30623075
3076+ void QgsVectorLayer::setLabelOnTop ( int idx, bool onTop )
3077+ {
3078+ const QgsFields &fields = pendingFields ();
3079+ if ( idx >= 0 && idx < fields.count () )
3080+ mLabelOnTop [ fields[idx].name ()] = onTop;
3081+ }
3082+
30633083void QgsVectorLayer::addOverlay ( QgsVectorOverlay* overlay )
30643084{
30653085 mOverlays .push_back ( overlay );
0 commit comments