diff --git a/src/server/services/wms/qgswmsparameters.cpp b/src/server/services/wms/qgswmsparameters.cpp index cabd62b4636..43b2634f8ed 100644 --- a/src/server/services/wms/qgswmsparameters.cpp +++ b/src/server/services/wms/qgswmsparameters.cpp @@ -1480,6 +1480,32 @@ namespace QgsWms return filters; } + bool QgsWmsParameters::isForce2D() const + { + bool force2D = false; + const QMap options = dxfFormatOptions(); + + if ( options.contains( DxfFormatOption::FORCE_2D ) ) + { + force2D = QVariant( options[ DxfFormatOption::FORCE_2D ] ).toBool(); + } + + return force2D; + } + + bool QgsWmsParameters::noMText() const + { + bool noMText = false; + const QMap options = dxfFormatOptions(); + + if ( options.contains( DxfFormatOption::NO_MTEXT ) ) + { + noMText = QVariant( options[ DxfFormatOption::NO_MTEXT ] ).toBool(); + } + + return noMText; + } + QList QgsWmsParameters::layersParameters() const { const QStringList layers = allLayersNickname(); diff --git a/src/server/services/wms/qgswmsparameters.h b/src/server/services/wms/qgswmsparameters.h index dd108133a23..82ddc4f7c93 100644 --- a/src/server/services/wms/qgswmsparameters.h +++ b/src/server/services/wms/qgswmsparameters.h @@ -349,7 +349,9 @@ namespace QgsWms MODE, LAYERATTRIBUTES, USE_TITLE_AS_LAYERNAME, - CODEC + CODEC, + NO_MTEXT, + FORCE_2D }; Q_ENUM( DxfFormatOption ) @@ -1309,6 +1311,22 @@ namespace QgsWms */ QMap dimensionValues() const; + /** + * \returns true if the FORCE_MTEXT parameter is set and the DXF should + * be produced with MTEXT instead of TEXT. + * + * \since QGIS 3.12 + */ + bool noMText() const; + + /** + * \returns true if the FORCE_2D parameter is set and the DXF should + * be produced in 2D. + * + * \since QGIS 3.12 + */ + bool isForce2D() const; + private: static bool isExternalLayer( const QString &name ); @@ -1325,6 +1343,7 @@ namespace QgsWms QMultiMap layerFilters( const QStringList &layers ) const; + QMap mWmsParameters; QMap > mExternalWMSParameters; QList mVersions; diff --git a/src/server/services/wms/qgswmsrenderer.cpp b/src/server/services/wms/qgswmsrenderer.cpp index 19632423cd1..608a0ca1e5c 100644 --- a/src/server/services/wms/qgswmsrenderer.cpp +++ b/src/server/services/wms/qgswmsrenderer.cpp @@ -848,6 +848,13 @@ namespace QgsWms dxf->setSymbologyScale( mWmsParameters.dxfScale() ); } + dxf->setForce2d( mWmsParameters.isForce2D() ); + QgsDxfExport::Flags flags; + if ( mWmsParameters.noMText() ) + flags.setFlag( QgsDxfExport::Flag::FlagNoMText ); + + dxf->setFlags( flags ); + return dxf; }