52 p.setRenderHint( QPainter::Antialiasing );
55 const double fontSize = mContext.convertToPainterUnits( mFormat.size(), mFormat.sizeUnit(), mFormat.sizeMapUnitScale() );
57 if ( mFormat.buffer().enabled() )
59 ? fontSize * mFormat.buffer().size() / 100
60 : mContext.convertToPainterUnits( mFormat.buffer().size(), mFormat.buffer().sizeUnit(), mFormat.buffer().sizeMapUnitScale() );
62 xtrans = std::max( xtrans, mContext.convertToPainterUnits( mFormat.background().size().width(), mFormat.background().sizeUnit(), mFormat.background().sizeMapUnitScale() ) );
66 if ( mFormat.buffer().enabled() )
67 ytrans = std::max( ytrans, mFormat.buffer().sizeUnit() ==
Qgis::RenderUnit::Percentage ? fontSize * mFormat.buffer().size() / 100 : mContext.convertToPainterUnits( mFormat.buffer().size(), mFormat.buffer().sizeUnit(), mFormat.buffer().sizeMapUnitScale() ) );
68 if ( mFormat.background().enabled() )
69 ytrans = std::max( ytrans, mContext.convertToPainterUnits( mFormat.background().size().height(), mFormat.background().sizeUnit(), mFormat.background().sizeMapUnitScale() ) );
72 QRectF textRect = rect();
73 textRect.setLeft( xtrans );
74 textRect.setWidth( textRect.width() - xtrans );
75 textRect.setTop( ytrans );
76 if ( textRect.height() > 300 )
77 textRect.setHeight( 300 );
78 if ( textRect.width() > 2000 )
79 textRect.setWidth( 2000 );
81 mContext.setPainter( &p );
static QgsMapToPixel fromScale(double scale, Qgis::DistanceUnit mapUnits, double dpi=96)
Returns a new QgsMapToPixel created using a specified scale and distance unit.
void setParameters(double mapUnitsPerPixel, double centerX, double centerY, int widthPixels, int heightPixels, double rotation)
Sets parameters for use in transforming coordinates.
void setMapToPixel(const QgsMapToPixel &mtp)
Sets the context's map to pixel transform, which transforms between map coordinates and device coordi...
void setScale(double scale)
Sets the scale to use for previewing format sizes in map units.
void paintEvent(QPaintEvent *e) override
QgsTextPreview(QWidget *parent=nullptr)
Constructor for QgsTextPreview.
void setMapUnits(Qgis::DistanceUnit unit)
Sets the map unit type for previewing format sizes in map units.
void setFormat(const QgsTextFormat &format)
Sets the text format for previewing in the widget.
static void drawText(const QRectF &rect, double rotation, Qgis::TextHorizontalAlignment alignment, const QStringList &textLines, QgsRenderContext &context, const QgsTextFormat &format, bool drawAsOutlines=true, Qgis::TextVerticalAlignment vAlignment=Qgis::TextVerticalAlignment::Top, Qgis::TextRendererFlags flags=Qgis::TextRendererFlags(), Qgis::TextLayoutMode mode=Qgis::TextLayoutMode::Rectangle)
Draws text within a rectangle using the specified settings.