20#include <QTextCharFormat> 
   24  set = format.hasProperty( QTextFormat::TextVerticalAlignment );
 
   25  switch ( format.verticalAlignment() )
 
   27    case QTextCharFormat::AlignNormal:
 
   29    case QTextCharFormat::AlignSuperScript:
 
   31    case QTextCharFormat::AlignSubScript:
 
   35    case QTextCharFormat::AlignMiddle:
 
   36    case QTextCharFormat::AlignTop:
 
   37    case QTextCharFormat::AlignBottom:
 
   38    case QTextCharFormat::AlignBaseline:
 
 
   46  : mTextColor( format.hasProperty( QTextFormat::ForegroundBrush ) ? format.foreground().color() : QColor() )
 
   47  , mFontWeight( format.hasProperty( QTextFormat::FontWeight ) ? format.fontWeight() : -1 )
 
   48  , mStyleName( format.font().styleName() )
 
   50  , mFontPointSize( format.hasProperty( QTextFormat::FontPointSize ) ? format.fontPointSize() : - 1 )
 
   57  if ( format.hasProperty( QTextFormat::FontFamily ) )
 
   59    mFontFamily = format.fontFamily();
 
   61  if ( mFontFamily.isEmpty() && format.hasProperty( QTextFormat::FontFamilies ) )
 
   63    const QStringList families = format.fontFamilies().toStringList();
 
   64    if ( !families.isEmpty() )
 
   65      mFontFamily = families.at( 0 );
 
 
   71  if ( !mTextColor.isValid() && other.mTextColor.isValid() )
 
   72    mTextColor = other.mTextColor;
 
   73  if ( mFontPointSize == -1 && other.mFontPointSize != -1 )
 
   74    mFontPointSize = other.mFontPointSize;
 
   75  if ( mFontFamily.isEmpty() && !other.mFontFamily.isEmpty() )
 
   76    mFontFamily = other.mFontFamily;
 
   78    mStrikethrough = other.mStrikethrough;
 
   80    mUnderline = other.mUnderline;
 
   82    mOverline = other.mOverline;
 
   84    mItalic = other.mItalic;
 
   85  if ( mFontWeight == -1 && other.mFontWeight != -1 )
 
   86    mFontWeight = other.mFontWeight;
 
   87  if ( mStyleName.isEmpty() && ! other.mStyleName.isEmpty() )
 
   88    mStyleName = other.mStyleName;
 
   91    mVerticalAlign = other.mVerticalAlign;
 
   92    mHasVerticalAlignSet = 
true;
 
 
  108  return mFontPointSize;
 
 
  113  mFontPointSize = size;
 
 
  128  return mStrikethrough;
 
 
  133  mStrikethrough = strikethrough;
 
 
  159  if ( !mFontFamily.isEmpty() )
 
  162  if ( mFontPointSize != -1 )
 
  168  if ( mFontWeight != - 1 )
 
  170#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 
  171    font.setWeight( mFontWeight );
 
  173    if ( mFontWeight <= 150 )
 
  174      font.setWeight( QFont::Thin );
 
  175    else if ( mFontWeight <= 250 )
 
  176      font.setWeight( QFont::ExtraLight );
 
  177    else if ( mFontWeight <= 350 )
 
  178      font.setWeight( QFont::Light );
 
  179    else if ( mFontWeight <= 450 )
 
  180      font.setWeight( QFont::Normal );
 
  181    else if ( mFontWeight <= 550 )
 
  182      font.setWeight( QFont::Medium );
 
  183    else if ( mFontWeight <= 650 )
 
  184      font.setWeight( QFont::DemiBold );
 
  185    else if ( mFontWeight <= 750 )
 
  186      font.setWeight( QFont::Bold );
 
  187    else if ( mFontWeight <= 850 )
 
  188      font.setWeight( QFont::ExtraBold );
 
  190      font.setWeight( QFont::Black );
 
  195    font.setStyleName( mStyleName );
 
 
TextCharacterVerticalAlignment
Text vertical alignment for characters.
@ Normal
Adjacent characters are positioned in the standard way for text in the writing system in use.
@ SubScript
Characters are placed below the base line for normal text.
@ SuperScript
Characters are placed above the base line for normal text.
@ Points
Points (e.g., for font sizes)
static void setFontFamily(QFont &font, const QString &family)
Sets the family for a font object.
Contains information about the context of a rendering operation.
double convertToPainterUnits(double size, Qgis::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale(), Qgis::RenderSubcomponentProperty property=Qgis::RenderSubcomponentProperty::Generic) const
Converts a size from the specified units to painter units (pixels).
Stores information relating to individual character formatting.
void setFamily(const QString &family)
Sets the font family name.
void overrideWith(const QgsTextCharacterFormat &other)
Override all the default/unset properties of the current character format with the settings from anot...
void updateFontForFormat(QFont &font, const QgsRenderContext &context, double scaleFactor=1.0) const
Updates the specified font in place, applying character formatting options which are applicable on a ...
void setFontWeight(int fontWeight)
Sets the font weight.
QColor textColor() const
Returns the character's text color, or an invalid color if no color override is set and the default f...
BooleanValue italic() const
Returns whether the format has italic enabled.
QgsTextCharacterFormat()=default
Constructor for QgsTextCharacterFormat.
void setStrikeOut(BooleanValue enabled)
Sets whether the format has strikethrough enabled.
void setOverline(BooleanValue enabled)
Sets whether the format has overline enabled.
BooleanValue
Status values for boolean format properties.
@ SetTrue
Property is set and true.
@ NotSet
Property is not set.
int fontWeight() const
Returns the font weight, or -1 if the font weight is not set and should be inherited.
bool hasVerticalAlignmentSet() const
Returns true if the format has an explicit vertical alignment set.
BooleanValue strikeOut() const
Returns whether the format has strikethrough enabled.
double fontPointSize() const
Returns the font point size, or -1 if the font size is not set and should be inherited.
QString family() const
Returns the font family name, or an empty string if the family is not set and should be inherited.
BooleanValue underline() const
Returns whether the format has underline enabled.
void setTextColor(const QColor &textColor)
Sets the character's text color.
void setUnderline(BooleanValue enabled)
Sets whether the format has underline enabled.
void setItalic(BooleanValue enabled)
Sets whether the format has italic enabled.
BooleanValue overline() const
Returns whether the format has overline enabled.
void setFontPointSize(double size)
Sets the font point size.
#define BUILTIN_UNREACHABLE
Qgis::TextCharacterVerticalAlignment convertTextCharFormatVAlign(const QTextCharFormat &format, bool &set)