QGIS/python/core/auto_generated/textrenderer/qgsfontmanager.sip.in
Nyall Dawson 3f6b490218 Sipify
2025-04-02 11:11:10 +10:00

378 lines
12 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/textrenderer/qgsfontmanager.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFontDownloadDetails
{
%Docstring(signature="appended")
Encapsulates details required for downloading a font.
.. versionadded:: 3.38
%End
%TypeHeaderCode
#include "qgsfontmanager.h"
%End
public:
QgsFontDownloadDetails();
%Docstring
Constructor for an invalid QgsFontDownloadDetails.
%End
QgsFontDownloadDetails( const QString &family, const QStringList &fontUrls, const QString &licenseUrl = QString() );
%Docstring
Constructor for QgsFontDownloadDetails.
:param family: Font family name
:param fontUrls: List of URLS to download for complete set of the font
family resources
:param licenseUrl: optional URL to download the font license
%End
static QString standardizeFamily( const QString &family );
%Docstring
Returns a cleaned, standardized version of a font ``family`` name.
%End
bool isValid() const;
%Docstring
Returns ``True`` if the details represent a valid downloadable font.
%End
QString family() const;
%Docstring
Returns the font family.
.. seealso:: :py:func:`standardizedFamily`
%End
QString standardizedFamily() const;
%Docstring
Returns the cleaned, standardized font family name.
%End
QStringList fontUrls() const;
%Docstring
Returns a list of download URLs for all files associated with the font
family.
%End
QString licenseUrl() const;
%Docstring
Returns the optional URL for downloading the font license details.
%End
};
class QgsFontManager : QObject
{
%Docstring(signature="appended")
Manages available fonts and font installation for a QGIS instance.
.. note::
:py:class:`QgsFontManager` is not usually directly created, but rather accessed through :py:func:`QgsApplication.fontManager()`.
.. versionadded:: 3.28
%End
%TypeHeaderCode
#include "qgsfontmanager.h"
%End
public:
explicit QgsFontManager( QObject *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsFontManager, with the specified ``parent`` object.
.. note::
QgsFontManager is not usually directly created, but rather accessed through :py:func:`QgsApplication.fontManager()`.
%End
QMap< QString, QString > fontFamilyReplacements() const;
%Docstring
Returns the map of automatic font family replacements.
This map is used to transparently map an original font family to an
alternative font family, e.g. to permit graceful handling of opening
projects which reference fonts which are not available on the system.
The map keys are the original font family names, and the values are the
alternative replacement family to use for the font.
.. note::
This method is thread safe.
.. seealso:: :py:func:`addFontFamilyReplacement`
.. seealso:: :py:func:`setFontFamilyReplacements`
%End
void addFontFamilyReplacement( const QString &original, const QString &replacement );
%Docstring
Adds a new font replacement from the ``original`` font family to a
``replacement`` font family.
This is used to transparently map an original font family to an
alternative font family, e.g. to permit graceful handling of opening
projects which reference fonts which are not available on the system.
The replacement map is stored locally and persists across QGIS sessions.
If ``replacement`` is an empty string then any existing mapping for the
``original`` family will be removed.
.. note::
This method is thread safe.
.. seealso:: :py:func:`fontFamilyReplacements`
.. seealso:: :py:func:`setFontFamilyReplacements`
%End
void setFontFamilyReplacements( const QMap< QString, QString> &replacements );
%Docstring
Sets the map of automatic font family ``replacements``.
This map is used to transparently map an original font family to an
alternative font family, e.g. to permit graceful handling of opening
projects which reference fonts which are not available on the system.
The map keys are the original font family names, and the values are the
alternative replacement family to use for the font.
The replacement map is stored locally and persists across QGIS sessions.
.. note::
This method is thread safe.
.. seealso:: :py:func:`fontFamilyReplacements`
.. seealso:: :py:func:`addFontFamilyReplacement`
%End
QString processFontFamilyName( const QString &name ) const;
%Docstring
Processes a font family ``name``, applying any matching
:py:func:`~QgsFontManager.fontFamilyReplacements` to the name.
.. note::
This method is thread safe.
%End
bool tryToDownloadFontFamily( const QString &family, QString &matchedFamily /Out/ );
%Docstring
Tries to download and install the specified font ``family``.
This method will attempt to download missing fonts, if the font download
URL is known and the font is freely licensed.
Returns ``True`` if a download link for the family is known and the
download has commenced, or ``False`` if the family is not known and
cannot be automatically downloaded.
The actual download operation occurs in a background task, and this
method returns immediately. Connect to
:py:func:`~QgsFontManager.fontDownloaded` in order to respond when the
font is installed and available for use.
.. warning::
Before calling this method a :py:class:`QgsApplication` must be fully initialized
and a call to :py:func:`~QgsFontManager.enableFontDownloadsForSession` made.
:param family: input font family name to try to match to known fonts
:return: - ``True`` if match was successful and the download will occur
- matchedFamily: found font family if a match was successful
%End
void enableFontDownloadsForSession();
%Docstring
Enables font downloads the the current QGIS session.
.. warning::
Ensure that the :py:class:`QgsApplication` is fully initialized before calling this method.
%End
QString urlForFontDownload( const QString &family, QString &matchedFamily /Out/ ) const /Deprecated="Since 3.38. Use detailsForFontDownload() instead."/;
%Docstring
Returns the URL at which the font ``family`` can be downloaded.
This method relies on a hardcoded list of available freely licensed
fonts, and will return an empty string for any font families not present
in this list.
:param family: input font family name to try to match to known fonts
:return: - URL to download font, or an empty string if no URL is
available
- matchedFamily: found font family if a match was successful
.. deprecated:: 3.38
Use :py:func:`~QgsFontManager.detailsForFontDownload` instead.
%End
QgsFontDownloadDetails detailsForFontDownload( const QString &family, QString &matchedFamily /Out/ ) const;
%Docstring
Returns a the details for downloading the specified font ``family``.
The returned object will contain all URLs which must be fetched to
retrieve the entire font family (eg it may contain one URL per font
style).
This method relies on a hardcoded list of available freely licensed
fonts, and will return an invalid :py:class:`QgsFontDownloadDetails` for
any font families not present in this list.
:param family: input font family name to try to match to known fonts
:return: - details required for downloading font, or an invalid
:py:class:`QgsFontDownloadDetails` if no URL is available
- matchedFamily: found font family if a match was successful
.. versionadded:: 3.38
%End
void downloadAndInstallFont( const QUrl &url, const QString &identifier = QString() ) /Deprecated="Since 3.38. Use the version which takes a QgsFontDownloadDetails argument instead."/;
%Docstring
Downloads a font and installs in the user's profile/fonts directory as
an application font, where the font family can be downloaded via a
single ``url``.
The download will proceed in a background task.
The optional ``identifier`` string can be used to specify a
user-friendly name for the download tasks, e.g. the font family name if
known.
.. seealso:: :py:func:`fontDownloaded`
.. seealso:: :py:func:`fontDownloadErrorOccurred`
.. deprecated:: 3.38
Use the version which takes a :py:class:`QgsFontDownloadDetails` argument instead.
%End
void downloadAndInstallFont( const QgsFontDownloadDetails &details, const QString &identifier = QString() );
%Docstring
Downloads a font and installs in the user's profile/fonts directory as
an application font, where the font family is split over multiple
download URLs.
The download will proceed in a background task.
The optional ``identifier`` string can be used to specify a
user-friendly name for the download tasks, e.g. the font family name if
known.
.. seealso:: :py:func:`fontDownloaded`
.. seealso:: :py:func:`fontDownloadErrorOccurred`
.. versionadded:: 3.38
%End
bool installFontsFromData( const QByteArray &data, QString &errorMessage /Out/, QStringList &families /Out/, QString &licenseDetails /Out/, const QString &filename = QString(), const QString &extension = QString() );
%Docstring
Installs local user fonts from the specified raw ``data``.
The ``data`` array may correspond to the contents of a TTF or OTF font
file, or a zipped archive of font files.
:param data: raw font data or zipped font data
:param filename: filename hint for destination file. Will be ignored for
archived content (e.g. zip file data)
:param extension: known file extension (eg "ttf", "otf") for font.
Should be specified to avoid issues with font
installation on Windows if filename is not specified
(since QGIS 3.38)
:return: - ``True`` if installation was successful.
- errorMessage: a descriptive error message if the installation
fails
- families: will be populated with a list of font families
installed from the data
- licenseDetails: will be populated with font license details,
if found
%End
void addUserFontDirectory( const QString &directory );
%Docstring
Adds a ``directory`` to use for user fonts.
This directory will be scanned for any TTF or OTF font files, which will
automatically be added and made available for use in the QGIS session.
Additionally, if this is the first user font directory added, any fonts
downloaded via :py:func:`~QgsFontManager.downloadAndInstallFont` will be
installed into this directory.
%End
QMap< QString, QStringList > userFontToFamilyMap() const;
%Docstring
Returns the mapping of installed user fonts to font families.
The map keys are the file names, the values are a list of families
provided by the file.
%End
bool removeUserFont( const QString &path );
%Docstring
Removes the user font at the specified ``path``.
%End
signals:
void fontDownloaded( const QStringList &families, const QString &licenseDetails );
%Docstring
Emitted when a font has downloaded and been locally loaded.
The ``families`` list specifies the font families contained in the
downloaded font.
If found, the ``licenseDetails`` string will be populated with
corresponding font license details.
.. seealso:: :py:func:`downloadAndInstallFont`
.. seealso:: :py:func:`fontDownloadErrorOccurred`
%End
void fontDownloadErrorOccurred( const QUrl &url, const QString &identifier, const QString &error );
%Docstring
Emitted when an error occurs during font downloading.
.. seealso:: :py:func:`downloadAndInstallFont`
.. seealso:: :py:func:`fontDownloaded`
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/textrenderer/qgsfontmanager.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/