From 15abbcf86b61684853aa4d8b840584c6483d0e1a Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 28 Nov 2018 18:08:28 +1000 Subject: [PATCH] [needs-docs] Use a combo box in layout SVG settings dialog for text export format This makes it match the label engine settings dialog, and opens the possibility for additional text export modes to be added in future. --- src/app/layout/qgslayoutdesignerdialog.cpp | 8 +++++-- src/ui/layout/qgssvgexportoptions.ui | 28 +++++++++------------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/app/layout/qgslayoutdesignerdialog.cpp b/src/app/layout/qgslayoutdesignerdialog.cpp index dbd7129e413..ec192f7a92d 100644 --- a/src/app/layout/qgslayoutdesignerdialog.cpp +++ b/src/app/layout/qgslayoutdesignerdialog.cpp @@ -3998,7 +3998,11 @@ bool QgsLayoutDesignerDialog::getSvgExportSettings( QgsLayoutExporter::SvgExport QDialog dialog; Ui::QgsSvgExportOptionsDialog options; options.setupUi( &dialog ); - options.chkTextAsOutline->setChecked( prevTextRenderFormat == QgsRenderContext::TextFormatAlwaysOutlines ); + + options.mTextRenderFormatComboBox->addItem( tr( "Always Export Text as Paths (Recommended)" ), QgsRenderContext::TextFormatAlwaysOutlines ); + options.mTextRenderFormatComboBox->addItem( tr( "Always Export Text as Text Objects" ), QgsRenderContext::TextFormatAlwaysText ); + + options.mTextRenderFormatComboBox->setCurrentIndex( options.mTextRenderFormatComboBox->findData( prevTextRenderFormat ) ); options.chkMapLayersAsGroup->setChecked( layersAsGroup ); options.mClipToContentGroupBox->setChecked( cropToContents ); options.mForceVectorCheckBox->setChecked( previousForceVector ); @@ -4018,7 +4022,7 @@ bool QgsLayoutDesignerDialog::getSvgExportSettings( QgsLayoutExporter::SvgExport marginBottom = options.mBottomMarginSpinBox->value(); marginLeft = options.mLeftMarginSpinBox->value(); includeMetadata = options.mIncludeMetadataCheckbox->isChecked(); - QgsRenderContext::TextRenderFormat textRenderFormat = options.chkTextAsOutline->isChecked() ? QgsRenderContext::TextFormatAlwaysOutlines : QgsRenderContext::TextFormatAlwaysText; + QgsRenderContext::TextRenderFormat textRenderFormat = static_cast< QgsRenderContext::TextRenderFormat >( options.mTextRenderFormatComboBox->currentData().toInt() ); if ( mLayout ) { diff --git a/src/ui/layout/qgssvgexportoptions.ui b/src/ui/layout/qgssvgexportoptions.ui index e06a4d2de45..8ee4f5f4897 100644 --- a/src/ui/layout/qgssvgexportoptions.ui +++ b/src/ui/layout/qgssvgexportoptions.ui @@ -19,8 +19,8 @@ SVG Options - - + + Export map layers as SVG groups (may affect label placement) @@ -30,23 +30,17 @@ - - - - true - - - Uncheck to render map labels as text objects. This will degrade the quality of the map labels but allow editing in vector illustration software. - + + + + + - Render map labels as outlines - - - true + Text export - + If checked, the layout will always be kept as vector objects when exported to a compatible format, even if the appearance of the resultant file does not match the layouts settings. If unchecked, some elements in the layout may be rasterized in order to keep their appearance intact. @@ -56,7 +50,7 @@ - + Export RDF metadata @@ -214,9 +208,9 @@ chkMapLayersAsGroup - chkTextAsOutline mForceVectorCheckBox mIncludeMetadataCheckbox + mTextRenderFormatComboBox mClipToContentGroupBox mTopMarginSpinBox mLeftMarginSpinBox