mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	Rationale: - there was a lot of large objects passed by value, so potentially there's a speed bump from this - even for implicitly shared classes like QString/QList there's still a (small) cost for copying the objects when there's no reason to - it's the right thing to do!
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
class QgsFontUtils
 | 
						|
{
 | 
						|
%TypeHeaderCode
 | 
						|
#include <qgsfontutils.h>
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    /** Check whether exact font is on system
 | 
						|
     * @param f The font to test for match
 | 
						|
     */
 | 
						|
    static bool fontMatchOnSystem( const QFont& f );
 | 
						|
 | 
						|
    /** Check whether font family is on system in a quick manner, which does not compare [foundry]
 | 
						|
     * @param family The family to test
 | 
						|
     * @returns Whether family was found on system
 | 
						|
     * @note This is good for use in loops of large lists, e.g. registering many features for labeling
 | 
						|
     */
 | 
						|
    static bool fontFamilyOnSystem( const QString& family );
 | 
						|
 | 
						|
    /** Check whether font family on system has specific style
 | 
						|
     * @param family The family to test
 | 
						|
     * @param style The style to test for
 | 
						|
     * @returns Whether family has style
 | 
						|
     * @note Added in QGIS 2.1
 | 
						|
     */
 | 
						|
    static bool fontFamilyHasStyle( const QString& family, const QString& style );
 | 
						|
 | 
						|
    /** Check whether font family is on system
 | 
						|
     * @param family The family to test
 | 
						|
     * @param chosen The actual family (possibly from different foundry) returned by system
 | 
						|
     * @param match Whether the family [foundry] returned by system is a match
 | 
						|
     * @returns Whether family was found on system
 | 
						|
     */
 | 
						|
    static bool fontFamilyMatchOnSystem( const QString& family, QString* chosen = 0, bool* match = 0 );
 | 
						|
 | 
						|
    /** Updates font with named style and retain all font properties
 | 
						|
     * @param f The font to update
 | 
						|
     * @param fontstyle The style to try and switch the font to
 | 
						|
     * @param fallback If no matching fontstyle found for font, assign most similar or first style found to font
 | 
						|
     * @returns Whether the font was updated (also returns true if the requested style matches font's current style)
 | 
						|
     * @note This is a more featured replacement for a Qt 4.8+ function: void QFont::setStyleName ( const QString & styleName )
 | 
						|
     */
 | 
						|
    static bool updateFontViaStyle( QFont& f, const QString& fontstyle, bool fallback = false );
 | 
						|
 | 
						|
    /** Get standard test font family
 | 
						|
     * @note Added in QGIS 2.1
 | 
						|
     */
 | 
						|
    static QString standardTestFontFamily();
 | 
						|
 | 
						|
    /** Loads standard test fonts from filesystem or qrc resource
 | 
						|
     * @param loadstyles List of styles to load, e.g. All, Roman, Oblique, Bold, Bold Oblique
 | 
						|
     * @returns Whether any font was loaded
 | 
						|
     * @note Done by default on debug app/server startup to ensure fonts available for unit tests (Roman and Bold)
 | 
						|
     * @note Added in QGIS 2.1
 | 
						|
     */
 | 
						|
    static bool loadStandardTestFonts( const QStringList& loadstyles );
 | 
						|
 | 
						|
    /** Get standard test font with specific style
 | 
						|
     * @param style Style to load, e.g. Roman, Oblique, Bold, Bold Oblique
 | 
						|
     * @param pointsize Font point size to set
 | 
						|
     * @returns QFont
 | 
						|
     * @note Added in QGIS 2.1
 | 
						|
     */
 | 
						|
    static QFont getStandardTestFont( const QString& style = "Roman", int pointsize = 12 );
 | 
						|
 | 
						|
    /** Returns a DOM element containing the properties of the font.
 | 
						|
     * @param document DOM document
 | 
						|
     * @param elementName name for DOM element
 | 
						|
     * @returns DOM element containing font settings
 | 
						|
     * @note added in QGIS 2.10
 | 
						|
     * @see setFromXmlElement
 | 
						|
     */
 | 
						|
    static QDomElement toXmlElement( const QFont& font, QDomDocument &document, const QString &elementName );
 | 
						|
 | 
						|
    /** Sets the properties of a font to match the properties stored in an XML element. Calling
 | 
						|
     * this will overwrite the current properties of the font.
 | 
						|
     * @param font font to update
 | 
						|
     * @param element DOM element
 | 
						|
     * @returns true if properties were successfully read from element
 | 
						|
     * @note added in QGIS 2.10
 | 
						|
     * @see toXmlElement
 | 
						|
     * @see setFromXmlChildNode
 | 
						|
     */
 | 
						|
    static bool setFromXmlElement( QFont& font, const QDomElement& element );
 | 
						|
 | 
						|
    /** Sets the properties of a font to match the properties stored in an XML child node. Calling
 | 
						|
     * this will overwrite the current properties of the font.
 | 
						|
     * @param font font to update
 | 
						|
     * @param element DOM element
 | 
						|
     * @param childNode name of child node
 | 
						|
     * @returns true if child node exists and properties were successfully read from node
 | 
						|
     * @note added in QGIS 2.10
 | 
						|
     * @see setFromXmlElement
 | 
						|
     * @see toXmlElement
 | 
						|
     */
 | 
						|
    static bool setFromXmlChildNode( QFont& font, const QDomElement& element, const QString& childNode );
 | 
						|
 | 
						|
    /** Returns the localized named style of a font, if such a translation is available.
 | 
						|
     * @param namedStyle a named style, i.e. "Bold", "Italic", etc
 | 
						|
     * @returns The localized named style
 | 
						|
     * @note added in QGIS 2.12
 | 
						|
     * @see untranslateNamedStyle
 | 
						|
     */
 | 
						|
    static QString translateNamedStyle( const QString& namedStyle );
 | 
						|
 | 
						|
    /** Returns the english named style of a font, if possible.
 | 
						|
     * @param namedStyle a localized named style, i.e. "Fett", "Kursiv", etc
 | 
						|
     * @returns The english named style
 | 
						|
     * @note added in QGIS 2.12
 | 
						|
     * @see translateNamedStyle
 | 
						|
     */
 | 
						|
    static QString untranslateNamedStyle( const QString& namedStyle );
 | 
						|
 | 
						|
};
 |