/** * @brief The QgsLegendSettings class stores the appearance and layout settings * for legend drawing with QgsLegendRenderer. The content of the legend is given * in QgsLegendModel class. * * @note added in 2.6 */ class QgsLegendSettings { %TypeHeaderCode #include %End public: QgsLegendSettings(); void setTitle( const QString &t ); QString title() const; /** Returns the alignment of the legend title * @returns Qt::AlignmentFlag for the legend title * @see setTitleAlignment */ Qt::AlignmentFlag titleAlignment() const; /** Sets the alignment of the legend title * @param alignment Text alignment for drawing the legend title * @see titleAlignment */ void setTitleAlignment( Qt::AlignmentFlag alignment ); /** Returns reference to modifiable style */ QgsLegendStyle &rstyle( QgsLegendStyle::Style s ); /** Returns style */ QgsLegendStyle style( QgsLegendStyle::Style s ) const; void setStyle( QgsLegendStyle::Style s, const QgsLegendStyle &style ); double boxSpace() const; void setBoxSpace( double s ); void setWrapChar( const QString &t ); QString wrapChar() const; double columnSpace() const; void setColumnSpace( double s ); int columnCount() const; void setColumnCount( int c ); bool splitLayer() const; void setSplitLayer( bool s ); bool equalColumnWidth() const; void setEqualColumnWidth( bool s ); QColor fontColor() const; void setFontColor( const QColor &c ); QSizeF symbolSize() const; void setSymbolSize( QSizeF s ); /** Returns whether a stroke will be drawn around raster symbol items. * @see setDrawRasterStroke() * @see rasterStrokeColor() * @see rasterStrokeWidth() * @note added in QGIS 2.12 */ bool drawRasterStroke() const; /** Sets whether a stroke will be drawn around raster symbol items. * @param enabled set to true to draw borders * @see drawRasterStroke() * @see setRasterStrokeColor() * @see setRasterStrokeWidth() * @note added in QGIS 2.12 */ void setDrawRasterStroke( bool enabled ); /** Returns the stroke color for the stroke drawn around raster symbol items. The stroke is * only drawn if drawRasterStroke() is true. * @see setRasterStrokeColor() * @see drawRasterStroke() * @see rasterStrokeWidth() * @note added in QGIS 2.12 */ QColor rasterStrokeColor() const; /** Sets the stroke color for the stroke drawn around raster symbol items. The stroke is * only drawn if drawRasterStroke() is true. * @param color stroke color * @see rasterStrokeColor() * @see setDrawRasterStroke() * @see setRasterStrokeWidth() * @note added in QGIS 2.12 */ void setRasterStrokeColor( const QColor &color ); /** Returns the stroke width (in millimeters) for the stroke drawn around raster symbol items. The stroke is * only drawn if drawRasterStroke() is true. * @see setRasterStrokeWidth() * @see drawRasterStroke() * @see rasterStrokeColor() * @note added in QGIS 2.12 */ double rasterStrokeWidth() const; /** Sets the stroke width for the stroke drawn around raster symbol items. The stroke is * only drawn if drawRasterStroke() is true. * @param width stroke width in millimeters * @see rasterStrokeWidth() * @see setDrawRasterStroke() * @see setRasterStrokeColor() * @note added in QGIS 2.12 */ void setRasterStrokeWidth( double width ); QSizeF wmsLegendSize() const; void setWmsLegendSize( QSizeF s ); double lineSpacing() const; void setLineSpacing( double s ); double mmPerMapUnit() const; void setMmPerMapUnit( double mmPerMapUnit ); bool useAdvancedEffects() const; void setUseAdvancedEffects( bool use ); double mapScale() const; void setMapScale( double scale ); int dpi() const; void setDpi( int dpi ); // utility functions /** Splits a string using the wrap char taking into account handling empty * wrap char which means no wrapping */ QStringList splitStringForWrapping( const QString &stringToSplt ) const; /** Draws Text. Takes care about all the composer specific issues (calculation to * pixel, scaling of font and painter to work around the Qt font bug) */ void drawText( QPainter *p, double x, double y, const QString &text, const QFont &font ) const; /** Like the above, but with a rectangle for multiline text * @param p painter to use * @param rect rectangle to draw into * @param text text to draw * @param font font to use * @param halignment optional horizontal alignment * @param valignment optional vertical alignment * @param flags allows for passing Qt::TextFlags to control appearance of rendered text */ void drawText( QPainter *p, const QRectF &rect, const QString &text, const QFont &font, Qt::AlignmentFlag halignment = Qt::AlignLeft, Qt::AlignmentFlag valignment = Qt::AlignTop, int flags = Qt::TextWordWrap ) const; /** Returns a font where size is in pixel and font size is upscaled with FONT_WORKAROUND_SCALE */ QFont scaledFontPixelSize( const QFont &font ) const; /** Calculates font to from point size to pixel size */ double pixelFontSize( double pointSize ) const; /** Returns the font width in millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE */ double textWidthMillimeters( const QFont &font, const QString &text ) const; /** Returns the font height of a character in millimeters */ double fontHeightCharacterMM( const QFont &font, QChar c ) const; /** Returns the font ascent in Millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE */ double fontAscentMillimeters( const QFont &font ) const; /** Returns the font descent in Millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE */ double fontDescentMillimeters( const QFont &font ) const; };