Skip to content

Commit 74f2785

Browse files
committed
[Server] Reactivate the capability to print selection with Server 3.4
The capability to print selection has been removed by the commit aaa7003 to prevent accidental selections showing in exports from composer. It is reactivated only for QGIS Server. Fixes #13459 QGIS Server WMS GetPrint request don't respect SELECTION parameter It's a forward porting of #7185
1 parent 3ff5c82 commit 74f2785

File tree

4 files changed

+5
-3
lines changed

4 files changed

+5
-3
lines changed

python/core/auto_generated/layout/qgslayoutrendercontext.sip.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Stores information relating to the current rendering settings for a layout.
2929
FlagUseAdvancedEffects,
3030
FlagForceVectorOutput,
3131
FlagHideCoverageLayer,
32+
FlagDrawSelection,
3233
};
3334
typedef QFlags<QgsLayoutRenderContext::Flag> Flags;
3435

src/core/layout/qgslayoutitemmap.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1104,7 +1104,7 @@ QgsMapSettings QgsLayoutItemMap::mapSettings( const QgsRectangle &extent, QSizeF
11041104
jobMapSettings.setFlag( QgsMapSettings::ForceVectorOutput, true ); // force vector output (no caching of marker images etc.)
11051105
jobMapSettings.setFlag( QgsMapSettings::Antialiasing, mLayout->renderContext().flags() & QgsLayoutRenderContext::FlagAntialiasing );
11061106
jobMapSettings.setFlag( QgsMapSettings::DrawEditingInfo, false );
1107-
jobMapSettings.setFlag( QgsMapSettings::DrawSelection, false );
1107+
jobMapSettings.setFlag( QgsMapSettings::DrawSelection, mLayout->renderContext().flags() & QgsLayoutRenderContext::FlagDrawSelection );
11081108
jobMapSettings.setFlag( QgsMapSettings::UseAdvancedEffects, mLayout->renderContext().flags() & QgsLayoutRenderContext::FlagUseAdvancedEffects );
11091109
jobMapSettings.setTransformContext( mLayout->project()->transformContext() );
11101110
jobMapSettings.setPathResolver( mLayout->project()->pathResolver() );

src/core/layout/qgslayoutrendercontext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class CORE_EXPORT QgsLayoutRenderContext : public QObject
4545
FlagUseAdvancedEffects = 1 << 4, //!< Enable advanced effects such as blend modes.
4646
FlagForceVectorOutput = 1 << 5, //!< Force output in vector format where possible, even if items require rasterization to keep their correct appearance.
4747
FlagHideCoverageLayer = 1 << 6, //!< Hide coverage layer in outputs
48+
FlagDrawSelection = 1 << 7, //!< Draw selection
4849
};
4950
Q_DECLARE_FLAGS( Flags, Flag )
5051

src/server/services/wms/qgswmsrenderer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
#include "qgslayerrestorer.h"
6767
#include "qgsdxfexport.h"
6868
#include "qgssymbollayerutils.h"
69-
#include "qgslayoutitemlegend.h"
7069
#include "qgsserverexception.h"
7170

7271
#include <QImage>
@@ -80,6 +79,7 @@
8079
#include "qgslayoutmanager.h"
8180
#include "qgslayoutexporter.h"
8281
#include "qgslayoutsize.h"
82+
#include "qgslayoutrendercontext.h"
8383
#include "qgslayoutmeasurement.h"
8484
#include "qgsprintlayout.h"
8585
#include "qgslayoutpagecollection.h"
@@ -450,7 +450,7 @@ namespace QgsWms
450450

451451
bool QgsRenderer::configurePrintLayout( QgsPrintLayout *c, const QgsMapSettings &mapSettings )
452452
{
453-
453+
c->renderContext().setFlag( QgsLayoutRenderContext::FlagDrawSelection, true );
454454
// Maps are configured first
455455
QList<QgsLayoutItemMap *> maps;
456456
c->layoutItems<QgsLayoutItemMap>( maps );

0 commit comments

Comments
 (0)