16#ifndef QGSFONTMANAGER_H
17#define QGSFONTMANAGER_H
26#include <QReadWriteLock>
62 bool isValid()
const {
return !mFontUrls.empty(); }
69 QString
family()
const {
return mFamily; }
79 QStringList
fontUrls()
const {
return mFontUrls; }
88 QString mStandardizedFamily;
89 QStringList mFontUrls;
95class CORE_EXPORT QgsFontDownloadTask :
public QgsTask
100 QgsFontDownloadTask(
const QString &description,
const QgsFontDownloadDetails &details );
103 void cancel()
override;
104 QString errorMessage()
const {
return mErrorMessage; }
105 QString failedUrl()
const {
return mFailedUrl; }
106 QList< QByteArray > fontData()
const {
return mFontData; }
107 QByteArray licenseData()
const {
return mLicenseData; }
108 QStringList contentDispositionFilenames()
const {
return mContentDispositionFilenames; }
111 QgsFontDownloadDetails mDetails;
112 std::unique_ptr< QgsFeedback > mFeedback;
113 bool mResult =
false;
114 QString mErrorMessage;
116 QList< QByteArray > mFontData;
117 QStringList mContentDispositionFilenames;
118 QByteArray mLicenseData;
332 const QByteArray &data, QString &errorMessage
SIP_OUT, QStringList &families
SIP_OUT, QString &licenseDetails
SIP_OUT, const QString &filename = QString(), const QString &extension = QString()
370 void fontDownloaded( const QStringList &families, const QString &licenseDetails );
381 QMap< QString, QString > mFamilyReplacements;
382 QMap< QString, QString > mLowerCaseFamilyReplacements;
383 QMap< QString, QStringList > mUserFontToFamilyMap;
384 QMap< QString,
int > mUserFontToIdMap;
385 mutable QReadWriteLock mReplacementLock;
386 QStringList mUserFontDirectories;
388 bool mEnableFontDownloads = false;
389 QMap< QString, QString > mPendingFontDownloads;
392 void storeFamilyReplacements();
393 void installFontsFromDirectory( const QString &dir );
Encapsulates details required for downloading a font.
static QString standardizeFamily(const QString &family)
Returns a cleaned, standardized version of a font family name.
QString licenseUrl() const
Returns the optional URL for downloading the font license details.
QStringList fontUrls() const
Returns a list of download URLs for all files associated with the font family.
QgsFontDownloadDetails()
Constructor for an invalid QgsFontDownloadDetails.
QString standardizedFamily() const
Returns the cleaned, standardized font family name.
bool isValid() const
Returns true if the details represent a valid downloadable font.
QString family() const
Returns the font family.
void addFontFamilyReplacement(const QString &original, const QString &replacement)
Adds a new font replacement from the original font family to a replacement font family.
QgsFontDownloadDetails detailsForFontDownload(const QString &family, QString &matchedFamily) const
Returns a the details for downloading the specified font family.
bool removeUserFont(const QString &path)
Removes the user font at the specified path.
QMap< QString, QString > fontFamilyReplacements() const
Returns the map of automatic font family replacements.
void installUserFonts()
Installs user fonts from the profile/fonts directory as application fonts.
void fontDownloaded(const QStringList &families, const QString &licenseDetails)
Emitted when a font has downloaded and been locally loaded.
void addUserFontDirectory(const QString &directory)
Adds a directory to use for user fonts.
void setFontFamilyReplacements(const QMap< QString, QString > &replacements)
Sets the map of automatic font family replacements.
Q_DECL_DEPRECATED void downloadAndInstallFont(const QUrl &url, const QString &identifier=QString())
Downloads a font and installs in the user's profile/fonts directory as an application font,...
void enableFontDownloadsForSession()
Enables font downloads the current QGIS session.
Q_DECL_DEPRECATED QString urlForFontDownload(const QString &family, QString &matchedFamily) const
Returns the URL at which the font family can be downloaded.
static const QgsSettingsEntryStringList * settingsFontFamilyReplacements
Settings entry for font family replacements.
bool installFontsFromData(const QByteArray &data, QString &errorMessage, QStringList &families, QString &licenseDetails, const QString &filename=QString(), const QString &extension=QString())
Installs local user fonts from the specified raw data.
QString processFontFamilyName(const QString &name) const
Processes a font family name, applying any matching fontFamilyReplacements() to the name.
QMap< QString, QStringList > userFontToFamilyMap() const
Returns the mapping of installed user fonts to font families.
QgsFontManager(QObject *parent=nullptr)
Constructor for QgsFontManager, with the specified parent object.
static const QgsSettingsEntryBool * settingsDownloadMissingFonts
Settings entry for font family replacements.
bool tryToDownloadFontFamily(const QString &family, QString &matchedFamily)
Tries to download and install the specified font family.
void fontDownloadErrorOccurred(const QUrl &url, const QString &identifier, const QString &error)
Emitted when an error occurs during font downloading.
A boolean settings entry.
A string list settings entry.
Abstract base class for long running background tasks.