QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
Loading...
Searching...
No Matches
qgstextformat.h
Go to the documentation of this file.
1/***************************************************************************
2 qgstextformat.h
3 ---------------
4 begin : May 2020
5 copyright : (C) Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSTEXTFORMAT_H
17#define QGSTEXTFORMAT_H
18
19#include "qgis.h"
20#include "qgis_core.h"
21#include "qgis_sip.h"
22#include "qgsscreenproperties.h"
23#include "qgsstringutils.h"
26#include "qgstextmasksettings.h"
28
29#include <QSharedDataPointer>
30#include <QString>
31
32using namespace Qt::StringLiterals;
33
34class QMimeData;
35class QgsTextSettingsPrivate;
36
43class CORE_EXPORT QgsTextFormat
44{
45 public:
51
52 QgsTextFormat( const QgsTextFormat &other );
54
55 QgsTextFormat &operator=( const QgsTextFormat &other );
57
59
60 bool operator==( const QgsTextFormat &other ) const;
61 bool operator!=( const QgsTextFormat &other ) const;
62
75 bool isValid() const;
76
83 void setValid();
84
90
95 SIP_SKIP QgsTextBufferSettings buffer() const { return mBufferSettings; }
96
102 void setBuffer( const QgsTextBufferSettings &bufferSettings );
103
108 QgsTextBackgroundSettings &background();
109
114 SIP_SKIP QgsTextBackgroundSettings background() const { return mBackgroundSettings; }
115
121 void setBackground( const QgsTextBackgroundSettings &backgroundSettings );
122
127 QgsTextShadowSettings &shadow();
128
133 SIP_SKIP QgsTextShadowSettings shadow() const { return mShadowSettings; }
134
140 void setShadow( const QgsTextShadowSettings &shadowSettings );
141
146 QgsTextMaskSettings &mask();
147
154 SIP_SKIP QgsTextMaskSettings mask() const { return mMaskSettings; }
155
163 void setMask( const QgsTextMaskSettings &maskSettings );
164
174 QFont font() const;
175
189 QFont scaledFont( const QgsRenderContext &context, double scaleFactor = 1.0, bool *isZeroSize SIP_PYARGREMOVE = nullptr ) const;
190
200 void setFont( const QFont &font );
201
207 QString namedStyle() const;
208
215 void setNamedStyle( const QString &style );
216
228 bool forcedBold() const;
229
241 void setForcedBold( bool forced );
242
254 bool forcedItalic() const;
255
267 void setForcedItalic( bool forced );
268
278 QStringList families() const;
279
293 void setFamilies( const QStringList &families );
294
300 double size() const;
301
308 void setSize( double size );
309
316 Qgis::RenderUnit sizeUnit() const;
317
325 void setSizeUnit( Qgis::RenderUnit unit );
326
333 QgsMapUnitScale sizeMapUnitScale() const;
334
341 void setSizeMapUnitScale( const QgsMapUnitScale &scale );
342
347 QColor color() const;
348
354 void setColor( const QColor &color );
355
361 double opacity() const;
362
371 void multiplyOpacity( double opacityFactor );
372
379 void setOpacity( double opacity );
380
393 int stretchFactor() const;
394
407 void setStretchFactor( int factor );
408
413 QPainter::CompositionMode blendMode() const;
414
420 void setBlendMode( QPainter::CompositionMode mode );
421
432 double lineHeight() const;
433
444 void setLineHeight( double height );
445
454 Qgis::RenderUnit lineHeightUnit() const;
455
464 void setLineHeightUnit( Qgis::RenderUnit unit );
465
477 double tabStopDistance() const;
478
492 void setTabStopDistance( double distance );
493
499 class CORE_EXPORT Tab
500 {
501 public:
505 explicit Tab( double position );
506
512 void setPosition( double position ) { mPosition = position; }
513
519 double position() const { return mPosition; }
520
521 bool operator==( const QgsTextFormat::Tab &other ) const { return qgsDoubleNear( mPosition, other.mPosition ); }
522
523#ifdef SIP_RUN
524 // clang-format off
525 SIP_PYOBJECT __repr__();
526 % MethodCode
527 const QString str = u"<QgsTextFormat.Tab: %1>"_s.arg( sipCpp->position() );
528 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
529 % End
530// clang-format on
531#endif
532
533 // clang-format off
534 private:
535 // clang-format on
536
537 double mPosition
538 = 0;
539 };
540
555 QList< QgsTextFormat::Tab > tabPositions() const;
556
570 void setTabPositions( const QList< QgsTextFormat::Tab > &positions );
571
581 Qgis::RenderUnit tabStopDistanceUnit() const;
582
592 void setTabStopDistanceUnit( Qgis::RenderUnit unit );
593
603 QgsMapUnitScale tabStopDistanceMapUnitScale() const;
604
614 void setTabStopDistanceMapUnitScale( const QgsMapUnitScale &scale );
615
621 Qgis::TextOrientation orientation() const;
622
628 void setOrientation( Qgis::TextOrientation orientation );
629
636 Qgis::Capitalization capitalization() const;
637
644 void setCapitalization( Qgis::Capitalization capitalization );
645
660 bool allowHtmlFormatting() const;
661
676 void setAllowHtmlFormatting( bool allow );
677
683 QColor previewBackgroundColor() const;
684
690 void setPreviewBackgroundColor( const QColor &color );
691
696 void readFromLayer( QgsVectorLayer *layer );
697
702 void readXml( const QDomElement &elem, const QgsReadWriteContext &context );
703
708 QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context ) const;
709
715 QMimeData *toMimeData() const SIP_FACTORY;
716
724 static QgsTextFormat fromQFont( const QFont &font );
725
733 QFont toQFont() const;
734
740 static QgsTextFormat fromMimeData( const QMimeData *data, bool *ok SIP_OUT = nullptr );
741
746 bool containsAdvancedEffects() const;
747
755 bool hasNonDefaultCompositionMode() const;
756
762 bool fontFound() const { return mTextFontFound; }
763
770 QString resolvedFontFamily() const { return mTextFontFamily; }
771
777 QgsPropertyCollection &dataDefinedProperties();
778
785 const QgsPropertyCollection &dataDefinedProperties() const SIP_SKIP;
786
791 QSet<QString> referencedFields( const QgsRenderContext &context ) const;
792
799 void setDataDefinedProperties( const QgsPropertyCollection &collection );
800
805 void updateDataDefinedProperties( QgsRenderContext &context );
806
816 static QPixmap textFormatPreviewPixmap( const QgsTextFormat &format, QSize size, const QString &previewText = QString(), int padding = 0, const QgsScreenProperties &screen = QgsScreenProperties() );
817
827 QString asCSS( double pointToPixelMultiplier = 1.0 ) const;
828
829 private:
830 QgsTextBufferSettings mBufferSettings;
831 QgsTextBackgroundSettings mBackgroundSettings;
832 QgsTextShadowSettings mShadowSettings;
833 QgsTextMaskSettings mMaskSettings;
834
835 QString mTextFontFamily;
836 bool mTextFontFound = true;
837
838 QSharedDataPointer<QgsTextSettingsPrivate> d;
839};
840
842
843#endif // QGSTEXTFORMAT_H
Capitalization
String capitalization options.
Definition qgis.h:3503
TextOrientation
Text orientations.
Definition qgis.h:2987
RenderUnit
Rendering size units.
Definition qgis.h:5340
Struct for storing maximum and minimum scales for measurements in map units.
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
A container for the context for various read/write operations on objects.
Contains information about the context of a rendering operation.
Stores properties relating to a screen.
Container for settings relating to a text background object.
Container for settings relating to a text buffer.
Defines a tab position for a text format.
double position() const
Returns the tab position.
Tab(double position)
Constructor for a Tab at the specified position.
void setPosition(double position)
Sets the tab position.
bool operator==(const QgsTextFormat::Tab &other) const
Container for all settings relating to text rendering.
QgsTextFormat()
Default constructor for QgsTextFormat.
QgsTextBufferSettings buffer() const
Returns a reference to the text buffer settings.
bool fontFound() const
Returns true if the specified font was found on the system, or false if the font was not found and a ...
QString resolvedFontFamily() const
Returns the family for the resolved font, ie if the specified font was not found on the system this w...
bool isValid() const
Returns true if the format is valid.
QgsTextMaskSettings mask() const
Returns a reference to the masking settings.
void setValid()
Sets the format to a valid state, without changing any of the default format settings.
QgsTextBackgroundSettings background() const
Returns a reference to the text background settings.
QgsTextShadowSettings shadow() const
Returns a reference to the text drop shadow settings.
QgsTextFormat & operator=(const QgsTextFormat &other)
QgsTextBufferSettings & buffer()
Returns a reference to the text buffer settings.
Container for settings relating to a selective masking around a text.
Container for settings relating to a text shadow.
Represents a vector layer which manages a vector based dataset.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).
Definition qgis.h:6975
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_PYARGREMOVE
Definition qgis_sip.h:158
#define SIP_OUT
Definition qgis_sip.h:57
#define SIP_FACTORY
Definition qgis_sip.h:83
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)