16#ifndef QGSFONTMANAGER_H
17#define QGSFONTMANAGER_H
26#include <QReadWriteLock>
63 bool isValid()
const {
return !mFontUrls.empty(); }
70 QString
family()
const {
return mFamily; }
80 QStringList
fontUrls()
const {
return mFontUrls; }
90 QString mStandardizedFamily;
91 QStringList mFontUrls;
97class CORE_EXPORT QgsFontDownloadTask :
public QgsTask
103 QgsFontDownloadTask(
const QString &description,
const QgsFontDownloadDetails &details );
106 void cancel()
override;
107 QString errorMessage()
const {
return mErrorMessage; }
108 QString failedUrl()
const {
return mFailedUrl; }
109 QList< QByteArray > fontData()
const {
return mFontData; }
110 QByteArray licenseData()
const {
return mLicenseData; }
111 QStringList contentDispositionFilenames()
const {
return mContentDispositionFilenames; }
114 QgsFontDownloadDetails mDetails;
115 std::unique_ptr< QgsFeedback > mFeedback;
116 bool mResult =
false;
117 QString mErrorMessage;
119 QList< QByteArray > mFontData;
120 QStringList mContentDispositionFilenames;
121 QByteArray mLicenseData;
336 bool installFontsFromData( const QByteArray &data, QString &errorMessage
SIP_OUT, QStringList &families
SIP_OUT, QString &licenseDetails
SIP_OUT, const QString &filename = QString(), const QString &extension = QString() );
373 void fontDownloaded( const QStringList &families, const QString &licenseDetails );
385 QMap< QString, QString > mFamilyReplacements;
386 QMap< QString, QString > mLowerCaseFamilyReplacements;
387 QMap< QString, QStringList > mUserFontToFamilyMap;
388 QMap< QString,
int > mUserFontToIdMap;
389 mutable QReadWriteLock mReplacementLock;
390 QStringList mUserFontDirectories;
392 bool mEnableFontDownloads = false;
393 QMap< QString, QString > mPendingFontDownloads;
396 void storeFamilyReplacements();
397 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 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.