@@ -155,12 +155,12 @@ bool QgsOgrProvider::convertField( QgsField &field, const QTextCodec &encoding )
155
155
ogrType = OFTDateTime;
156
156
break;
157
157
158
- //not sure if needed, but for consistency
158
+ # if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,4,0)
159
159
case QVariant::Map:
160
160
ogrType = OFTString;
161
161
ogrSubType = OFSTJSON;
162
162
break;
163
-
163
+ #endif
164
164
default:
165
165
return false;
166
166
}
@@ -1049,6 +1049,7 @@ void QgsOgrProvider::loadFields()
1049
1049
break ;
1050
1050
1051
1051
case OFTString:
1052
+ #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,4,0)
1052
1053
if ( OGR_Fld_GetSubType ( fldDef ) == OFSTJSON )
1053
1054
{
1054
1055
ogrSubType = OFSTJSON;
@@ -1061,6 +1062,7 @@ void QgsOgrProvider::loadFields()
1061
1062
varType = QVariant::String;
1062
1063
}
1063
1064
break ;
1065
+ #endif
1064
1066
default :
1065
1067
varType = QVariant::String; // other unsupported, leave it as a string
1066
1068
}
@@ -1531,6 +1533,8 @@ bool QgsOgrProvider::addFeaturePrivate( QgsFeature &f, Flags flags )
1531
1533
case OFTString:
1532
1534
{
1533
1535
QString stringValue;
1536
+
1537
+ #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,4,0)
1534
1538
if ( OGR_Fld_GetSubType ( fldDef ) == OFSTJSON )
1535
1539
{
1536
1540
stringValue = QString::fromUtf8 ( QJsonDocument::fromVariant ( attrVal.toMap () ).toJson ().data () );
@@ -1543,7 +1547,9 @@ bool QgsOgrProvider::addFeaturePrivate( QgsFeature &f, Flags flags )
1543
1547
{
1544
1548
stringValue = attrVal.toString ();
1545
1549
}
1546
-
1550
+ #else
1551
+ stringValue = attrVal.toString ();
1552
+ #endif
1547
1553
QgsDebugMsgLevel ( QStringLiteral ( " Writing string attribute %1 with %2, encoding %3" )
1548
1554
.arg ( qgisAttId )
1549
1555
.arg ( attrVal.toString (),
@@ -1689,9 +1695,11 @@ bool QgsOgrProvider::addAttributeOGRLevel( const QgsField &field, bool &ignoreEr
1689
1695
case QVariant::Bool:
1690
1696
OGR_Fld_SetSubType ( fielddefn.get (), OFSTBoolean );
1691
1697
break ;
1698
+ #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,4,0)
1692
1699
case QVariant::Map:
1693
1700
OGR_Fld_SetSubType ( fielddefn.get (), OFSTJSON );
1694
1701
break ;
1702
+ #endif
1695
1703
default :
1696
1704
break ;
1697
1705
}
@@ -2121,6 +2129,7 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap &attr_
2121
2129
case OFTString:
2122
2130
{
2123
2131
QString stringValue;
2132
+ #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,4,0)
2124
2133
if ( OGR_Fld_GetSubType ( fd ) == OFSTJSON )
2125
2134
{
2126
2135
stringValue = QString::fromUtf8 ( QJsonDocument::fromVariant ( it2->toMap () ).toJson ().data () );
@@ -2133,7 +2142,9 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap &attr_
2133
2142
{
2134
2143
stringValue = it2->toString ();
2135
2144
}
2136
-
2145
+ #else
2146
+ stringValue = it2->toString ();
2147
+ #endif
2137
2148
OGR_F_SetFieldString ( of.get (), f, textEncoding ()->fromUnicode ( stringValue ).constData () );
2138
2149
break ;
2139
2150
}
0 commit comments