From aedf08c8a44f0cd8f0afefc87a8cc34fd073851c Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 14 Sep 2015 20:35:25 +1000 Subject: [PATCH] [composer] Enable always disabled labels as outline checkbox in svg export, hook up to labeling setting --- src/app/composer/qgscomposer.cpp | 14 ++++++++++++++ src/ui/{ => composer}/qgssvgexportoptions.ui | 9 ++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) rename src/ui/{ => composer}/qgssvgexportoptions.ui (86%) diff --git a/src/app/composer/qgscomposer.cpp b/src/app/composer/qgscomposer.cpp index ddc6e73e812..9d41750ee41 100644 --- a/src/app/composer/qgscomposer.cpp +++ b/src/app/composer/qgscomposer.cpp @@ -2303,6 +2303,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QString outputFileName; QString outputDir; bool groupLayers = false; + bool prevSettingLabelsAsOutlines = QgsProject::instance()->readBoolEntry( "PAL", "/DrawOutlineLabels", true ); if ( mode == QgsComposer::Single ) { @@ -2333,8 +2334,12 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QDialog dialog; Ui::QgsSvgExportOptionsDialog options; options.setupUi( &dialog ); + options.chkTextAsOutline->setChecked( prevSettingLabelsAsOutlines ); + dialog.exec(); groupLayers = options.chkMapLayersAsGroup->isChecked(); + //temporarily override label draw outlines setting + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", options.chkTextAsOutline->isChecked() ); } if ( !outputFileName.endsWith( ".svg", Qt::CaseInsensitive ) ) @@ -2388,8 +2393,12 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QDialog dialog; Ui::QgsSvgExportOptionsDialog options; options.setupUi( &dialog ); + options.chkTextAsOutline->setChecked( prevSettingLabelsAsOutlines ); + dialog.exec(); groupLayers = options.chkMapLayersAsGroup->isChecked(); + //temporarily override label draw outlines setting + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", options.chkTextAsOutline->isChecked() ); } @@ -2409,6 +2418,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QMessageBox::Ok, QMessageBox::Ok ); mView->setPaintingEnabled( true ); + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", prevSettingLabelsAsOutlines ); return; } } @@ -2437,6 +2447,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QMessageBox::Ok, QMessageBox::Ok ); mView->setPaintingEnabled( true ); + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", prevSettingLabelsAsOutlines ); return; } outputFileName = QDir( outputDir ).filePath( atlasMap->currentFilename() ) + ".svg"; @@ -2481,6 +2492,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QMessageBox::Ok, QMessageBox::Ok ); mView->setPaintingEnabled( true ); + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", prevSettingLabelsAsOutlines ); return; } @@ -2604,6 +2616,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) QMessageBox::Ok, QMessageBox::Ok ); mView->setPaintingEnabled( true ); + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", prevSettingLabelsAsOutlines ); return; } @@ -2618,6 +2631,7 @@ void QgsComposer::exportCompositionAsSVG( QgsComposer::OutputMode mode ) atlasMap->endRender(); mView->setPaintingEnabled( true ); + QgsProject::instance()->writeEntry( "PAL", "/DrawOutlineLabels", prevSettingLabelsAsOutlines ); } void QgsComposer::on_mActionSelectMoveItem_triggered() diff --git a/src/ui/qgssvgexportoptions.ui b/src/ui/composer/qgssvgexportoptions.ui similarity index 86% rename from src/ui/qgssvgexportoptions.ui rename to src/ui/composer/qgssvgexportoptions.ui index bda1f066e56..4279abad44b 100644 --- a/src/ui/qgssvgexportoptions.ui +++ b/src/ui/composer/qgssvgexportoptions.ui @@ -6,7 +6,7 @@ 0 0 - 463 + 471 103 @@ -29,10 +29,13 @@ - false + 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 text as outline + Render map labels as outlines true