QGIS API Documentation  3.21.0-Master (5b68dc587e)
qgslayoutrendercontext.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayoutrendercontext.h
3  -------------------
4  begin : July 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 #ifndef QGSLAYOUTRENDERCONTEXT_H
17 #define QGSLAYOUTRENDERCONTEXT_H
18 
19 #include "qgis_core.h"
22 #include "qgis.h"
23 #include <QtGlobal>
24 #include <QColor>
25 #include <QVector>
26 
27 class QgsLayout;
29 
36 class CORE_EXPORT QgsLayoutRenderContext : public QObject
37 {
38 
39  Q_OBJECT
40 
41  public:
42 
44  enum Flag
45  {
46  FlagDebug = 1 << 1,
47  FlagOutlineOnly = 1 << 2,
48  FlagAntialiasing = 1 << 3,
49  FlagUseAdvancedEffects = 1 << 4,
50  FlagForceVectorOutput = 1 << 5,
51  FlagHideCoverageLayer = 1 << 6,
52  FlagDrawSelection = 1 << 7,
53  FlagDisableTiledRasterLayerRenders = 1 << 8,
54  FlagRenderLabelsByMapLayer = 1 << 9,
55  FlagLosslessImageRendering = 1 << 10,
56  };
57  Q_DECLARE_FLAGS( Flags, Flag )
58 
59 
63 
70  void setFlags( QgsLayoutRenderContext::Flags flags );
71 
79  void setFlag( QgsLayoutRenderContext::Flag flag, bool on = true );
80 
87  QgsLayoutRenderContext::Flags flags() const;
88 
95  bool testFlag( Flag flag ) const;
96 
100  Qgis::RenderContextFlags renderContextFlags() const;
101 
107  void setDpi( double dpi );
108 
113  double dpi() const;
114 
120  void setSelectionColor( const QColor &color ) { mSelectionColor = color; }
121 
127  QColor selectionColor() const { return mSelectionColor; }
128 
133  SIP_SKIP const QgsLayoutMeasurementConverter &measurementConverter() const { return mMeasurementConverter; }
134 
139  QgsLayoutMeasurementConverter &measurementConverter() { return mMeasurementConverter; }
140 
146  bool isPreviewRender() const { return mIsPreviewRender; }
147 
152  bool gridVisible() const;
153 
158  void setGridVisible( bool visible );
159 
164  bool boundingBoxesVisible() const;
165 
170  void setBoundingBoxesVisible( bool visible );
171 
178  void setPagesVisible( bool visible );
179 
186  bool pagesVisible() const { return mPagesVisible; }
187 
198  Q_DECL_DEPRECATED void setCurrentExportLayer( int layer = -1 ) SIP_DEPRECATED { mCurrentExportLayer = layer; }
199 
210  Q_DECL_DEPRECATED int currentExportLayer() const SIP_DEPRECATED { return mCurrentExportLayer; }
211 
219  {
220  return mTextRenderFormat;
221  }
222 
230  {
231  mTextRenderFormat = format;
232  }
233 
251  void setSimplifyMethod( const QgsVectorSimplifyMethod &method ) { mSimplifyMethod = method; }
252 
265  const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
266 
276  QStringList exportThemes() const;
277 
287  void setExportThemes( const QStringList &themes );
288 
295  void setPredefinedScales( const QVector<qreal> &scales );
296 
302  QVector<qreal> predefinedScales() const { return mPredefinedScales; }
303 
312  QgsFeatureFilterProvider *featureFilterProvider() const;
313 
322  void setFeatureFilterProvider( QgsFeatureFilterProvider *featureFilterProvider );
323 
324  signals:
325 
330  void flagsChanged( QgsLayoutRenderContext::Flags flags );
331 
335  void dpiChanged();
336 
343 
344  private:
345 
346  Flags mFlags = Flags();
347 
348  QgsLayout *mLayout = nullptr;
349 
350  int mCurrentExportLayer = -1;
351 
352  QColor mSelectionColor = Qt::yellow;
353 
354  QgsLayoutMeasurementConverter mMeasurementConverter;
355 
356  bool mIsPreviewRender = true;
357  bool mGridVisible = false;
358  bool mBoundingBoxesVisible = true;
359  bool mPagesVisible = true;
360 
361  Qgis::TextRenderFormat mTextRenderFormat = Qgis::TextRenderFormat::AlwaysOutlines;
362 
363  QStringList mExportThemes;
364 
365  QgsVectorSimplifyMethod mSimplifyMethod;
366 
367  QVector<qreal> mPredefinedScales;
368 
369  QgsFeatureFilterProvider *mFeatureFilterProvider = nullptr;
370 
371  friend class QgsLayoutExporter;
372  friend class TestQgsLayout;
373  friend class LayoutContextPreviewSettingRestorer;
374  friend class TestQgsLayoutMap;
375  friend class TestQgsLayoutLabel;
376 
377 };
378 
379 Q_DECLARE_METATYPE( QgsLayoutRenderContext::Flags )
380 
381 #endif //QGSLAYOUTRENDERCONTEXT_H
382 
383 
384 
TextRenderFormat
Options for rendering text.
Definition: qgis.h:964
Abstract interface for use by classes that filter the features or attributes of a layer.
Handles rendering and exports of layouts to various formats.
This class provides a method of converting QgsLayoutMeasurements from one unit to another.
Stores information relating to the current rendering settings for a layout.
void setSimplifyMethod(const QgsVectorSimplifyMethod &method)
Sets the simplification setting to use when rendering vector layers.
void setSelectionColor(const QColor &color)
Sets color that is used for drawing of selected vector features.
void dpiChanged()
Emitted when the context's DPI is changed.
const QgsVectorSimplifyMethod & simplifyMethod() const
Returns the simplification settings to use when rendering vector layers.
void setTextRenderFormat(Qgis::TextRenderFormat format)
Sets the text render format, which dictates how text is rendered (e.g.
void predefinedScalesChanged()
Emitted when the list of predefined scales changes.
bool pagesVisible() const
Returns whether the page items are be visible in the layout.
Qgis::TextRenderFormat textRenderFormat() const
Returns the text render format, which dictates how text is rendered (e.g.
bool isPreviewRender() const
Returns true if the render current being conducted is a preview render, i.e.
void flagsChanged(QgsLayoutRenderContext::Flags flags)
Emitted whenever the context's flags change.
QVector< qreal > predefinedScales() const
Returns the current list of predefined scales for use with the layout.
QgsLayoutMeasurementConverter & measurementConverter()
Returns the layout measurement converter to be used in the layout.
QColor selectionColor() const
Gets color that is used for drawing of selected vector features.
Flag
Flags for controlling how a layout is rendered.
Q_DECL_DEPRECATED void setCurrentExportLayer(int layer=-1)
Sets the current item layer to draw while exporting.
const QgsLayoutMeasurementConverter & measurementConverter() const
Returns the layout measurement converter to be used in the layout.
Q_DECL_DEPRECATED int currentExportLayer() const
Returns the current item layer to draw while exporting.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:51
This class contains information how to simplify geometries fetched from a vector layer.
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_SKIP
Definition: qgis_sip.h:126
Q_DECLARE_METATYPE(QgsMeshTimeSettings)