Qt 4.8
Classes | Public Functions | Public Variables | List of all members
QFontDatabasePrivate Class Reference

Classes

struct  ApplicationFont
 

Public Functions

int addAppFont (const QByteArray &fontData, const QString &fileName)
 
void addFont (const QString &familyname, const char *foundryname, int weight, bool italic, int pixelSize, const QByteArray &file, int fileIndex, bool antialiased, const QList< QFontDatabase::WritingSystem > &writingSystems=QList< QFontDatabase::WritingSystem >())
 
void addQPF2File (const QByteArray &file)
 
QStringList addTTFile (const QByteArray &file, const QByteArray &fontData=QByteArray())
 
QtFontFamilyfamily (const QString &f, bool=false)
 
void free ()
 
void invalidate ()
 
bool isApplicationFont (const QString &fileName)
 
bool loadFromCache (const QString &fontPath)
 
 QFontDatabasePrivate ()
 
 ~QFontDatabasePrivate ()
 

Public Variables

QVector< ApplicationFontapplicationFonts
 
int count
 
IDWriteFactory * directWriteFactory
 
IDWriteGdiInterop * directWriteGdiInterop
 
QStringList fallbackFamilies
 
QtFontFamily ** families
 
bool reregisterAppFonts
 
QDataStreamstream
 
QString systemLang
 

Detailed Description

Definition at line 644 of file qfontdatabase.cpp.

Constructors and Destructors

◆ QFontDatabasePrivate()

QFontDatabasePrivate::QFontDatabasePrivate ( )
inline

Definition at line 647 of file qfontdatabase.cpp.

648  : count(0), families(0), reregisterAppFonts(false)
649 #if defined(Q_WS_QWS)
650  , stream(0)
651 #endif
652 #if defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE)
653  , symbianExtras(0)
654 #endif
655 #if defined(Q_WS_WIN) && !defined(QT_NO_DIRECTWRITE)
656  , directWriteFactory(0)
658 #endif
659  { }
QtFontFamily ** families
IDWriteGdiInterop * directWriteGdiInterop
IDWriteFactory * directWriteFactory

◆ ~QFontDatabasePrivate()

QFontDatabasePrivate::~QFontDatabasePrivate ( )
inline

Definition at line 661 of file qfontdatabase.cpp.

661  {
662  free();
663 #if defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE)
664  if (symbianExtras)
665  delete symbianExtras;
666 #endif
667 #if defined(Q_WS_WIN) && !defined(QT_NO_DIRECTWRITE)
669  directWriteGdiInterop->Release();
670  if (directWriteFactory != 0)
671  directWriteFactory->Release();
672 #endif
673  }
IDWriteGdiInterop * directWriteGdiInterop
IDWriteFactory * directWriteFactory

Functions

◆ addAppFont()

int QFontDatabasePrivate::addAppFont ( const QByteArray fontData,
const QString fileName 
)

Definition at line 2600 of file qfontdatabase.cpp.

2601 {
2603  font.data = fontData;
2604  font.fileName = fileName;
2605 
2606  int i;
2607  for (i = 0; i < applicationFonts.count(); ++i)
2608  if (applicationFonts.at(i).families.isEmpty())
2609  break;
2610  if (i >= applicationFonts.count()) {
2611  applicationFonts.append(ApplicationFont());
2612  i = applicationFonts.count() - 1;
2613  }
2614 
2615  if (font.fileName.isEmpty() && !fontData.isEmpty())
2616  font.fileName = QString::fromLatin1(":qmemoryfonts/") + QString::number(i);
2617 
2618  registerFont(&font);
2619  if (font.families.isEmpty())
2620  return -1;
2621 
2622  applicationFonts[i] = font;
2623 
2624  invalidate();
2625  return i;
2626 }
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: qstring.cpp:6448
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt)
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
Definition: qbytearray.h:421
QVector< ApplicationFont > applicationFonts
static QString fileName(const QString &fileUrl)

◆ addFont()

void QFontDatabasePrivate::addFont ( const QString familyname,
const char *  foundryname,
int  weight,
bool  italic,
int  pixelSize,
const QByteArray file,
int  fileIndex,
bool  antialiased,
const QList< QFontDatabase::WritingSystem > &  writingSystems = QList<QFontDatabase::WritingSystem>() 
)

Definition at line 789 of file qfontdatabase.cpp.

Referenced by addQPF2File(), initializeDb(), and loadFromCache().

792 {
793 // qDebug() << "Adding font" << familyname << weight << italic << pixelSize << file << fileIndex << antialiased;
794  QtFontStyle::Key styleKey;
795  styleKey.style = italic ? QFont::StyleItalic : QFont::StyleNormal;
796  styleKey.weight = weight;
797  styleKey.stretch = 100;
798  QtFontFamily *f = family(familyname, true);
799 
800  if (writingSystems.isEmpty()) {
801  for (int ws = 1; ws < QFontDatabase::WritingSystemsCount; ++ws) {
803  }
804  f->bogusWritingSystems = true;
805  } else {
806  for (int i = 0; i < writingSystems.count(); ++i) {
807  f->writingSystems[writingSystems.at(i)] = QtFontFamily::Supported;
808  }
809  }
810 
811  QtFontFoundry *foundry = f->foundry(QString::fromLatin1(foundryname), true);
812  QtFontStyle *style = foundry->style(styleKey, QString(), true);
813  style->smoothScalable = (pixelSize == 0);
814  style->antialiased = antialiased;
816  size->fileName = file;
817  size->fileIndex = fileIndex;
818 
819 #if defined(Q_WS_QWS)
820  if (stream) {
821  *stream << familyname << foundry->name << weight << quint8(italic) << pixelSize
822  << file << fileIndex << quint8(antialiased);
823  *stream << quint8(writingSystems.count());
824  for (int i = 0; i < writingSystems.count(); ++i)
825  *stream << quint8(writingSystems.at(i));
826  }
827 #else // ..in case of defined(Q_OS_SYMBIAN) && !defined(QT_NO_FREETYPE)
828  f->fontFilename = file;
829  f->fontFileIndex = fileIndex;
830 #endif
831 }
QByteArray fileName
Q_CORE_EXPORT QTextStream & ws(QTextStream &s)
QtFontStyle * style(const QtFontStyle::Key &, const QString &=QString(), bool=false)
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
unsigned char quint8
Definition: qglobal.h:934
The QString class provides a Unicode character string.
Definition: qstring.h:83
bool bogusWritingSystems
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
QByteArray fontFilename
#define SMOOTH_SCALABLE
static float pixelSize(const QFontDef &request, int dpi)
Definition: qfont_win.cpp:80
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
QtFontFamily * family(const QString &f, bool=false)
unsigned char writingSystems[QFontDatabase::WritingSystemsCount]
QtFontSize * pixelSize(unsigned short size, bool=false)
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
QtFontFoundry * foundry(const QString &f, bool=false)

◆ addQPF2File()

void QFontDatabasePrivate::addQPF2File ( const QByteArray file)

Definition at line 95 of file qfontdatabase_qws.cpp.

Referenced by initializeDb().

96 {
97 #ifndef QT_FONTS_ARE_RESOURCES
98  struct stat st;
99  if (stat(file.constData(), &st))
100  return;
101  int f = QT_OPEN(file, O_RDONLY, 0);
102  if (f < 0)
103  return;
104  const uchar *data = (const uchar *)mmap(0, st.st_size, PROT_READ, MAP_SHARED, f, 0);
105  const int dataSize = st.st_size;
106 #else
107  QResource res(QLatin1String(file.constData()));
108  const uchar *data = res.data();
109  const int dataSize = res.size();
110  //qDebug() << "addQPF2File" << file << data;
111 #endif
112  if (data && data != (const uchar *)MAP_FAILED) {
113  if (QFontEngineQPF::verifyHeader(data, dataSize)) {
119 
120  if (!fontName.isEmpty() && pixelSize) {
121  int fontWeight = 50;
122  if (weight.type() == QVariant::Int || weight.type() == QVariant::UInt)
123  fontWeight = weight.toInt();
124 
125  bool italic = static_cast<QFont::Style>(style.toInt()) & QFont::StyleItalic;
126 
128  for (int i = 0; i < writingSystemBits.count(); ++i) {
129  uchar currentByte = writingSystemBits.at(i);
130  for (int j = 0; j < 8; ++j) {
131  if (currentByte & 1)
132  writingSystems << QFontDatabase::WritingSystem(i * 8 + j);
133  currentByte >>= 1;
134  }
135  }
136 
137  addFont(fontName, /*foundry*/ "prerendered", fontWeight, italic,
138  pixelSize, file, /*fileIndex*/ 0,
139  /*antialiased*/ true, writingSystems);
140  }
141  } else {
142  qDebug() << "header verification of QPF2 font" << file << "failed. maybe it is corrupt?";
143  }
144 #ifndef QT_FONTS_ARE_RESOURCES
145  munmap((void *)data, st.st_size);
146 #endif
147  }
148 #ifndef QT_FONTS_ARE_RESOURCES
149  QT_CLOSE(f);
150 #endif
151 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
#define MAP_FAILED
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
#define O_RDONLY
QString toString() const
Returns the variant as a QString if the variant has type() String , Bool , ByteArray ...
Definition: qvariant.cpp:2270
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
QByteArray toByteArray() const
Returns the variant as a QByteArray if the variant has type() ByteArray or String (converted using QS...
Definition: qvariant.cpp:2383
int toInt(bool *ok=0) const
Returns the variant as an int if the variant has type() Int , Bool , ByteArray , Char ...
Definition: qvariant.cpp:2625
Q_CORE_EXPORT void qDebug(const char *,...)
unsigned char uchar
Definition: qglobal.h:994
The QResource class provides an interface for reading directly from resources.
Definition: qresource.h:58
static float pixelSize(const QFontDef &request, int dpi)
Definition: qfont_win.cpp:80
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
static const char * data(const QByteArray &arr)
Style
This enum describes the different styles of glyphs that are used to display text. ...
Definition: qfont.h:111
const char * constData() const
Returns a pointer to the data stored in the byte array.
Definition: qbytearray.h:433
void addFont(const QString &familyname, const char *foundryname, int weight, bool italic, int pixelSize, const QByteArray &file, int fileIndex, bool antialiased, const QList< QFontDatabase::WritingSystem > &writingSystems=QList< QFontDatabase::WritingSystem >())
#define QT_OPEN
Definition: qcore_unix_p.h:186
int count(char c) const
Returns the number of occurrences of character ch in the byte array.
Type type() const
Returns the storage type of the value stored in the variant.
Definition: qvariant.cpp:1901
#define st(var, type, card)
static bool verifyHeader(const uchar *data, int size)
char at(int i) const
Returns the character at index position i in the byte array.
Definition: qbytearray.h:413
#define QT_CLOSE
Definition: qcore_unix_p.h:304
static QVariant extractHeaderField(const uchar *data, HeaderTag tag)

◆ addTTFile()

QStringList QFontDatabasePrivate::addTTFile ( const QByteArray file,
const QByteArray fontData = QByteArray() 
)

Definition at line 835 of file qfontdatabase.cpp.

Referenced by initializeDb(), and registerFont().

836 {
838  extern FT_Library qt_getFreetype();
839  FT_Library library = qt_getFreetype();
840 
841  int index = 0;
842  int numFaces = 0;
843  do {
844  FT_Face face;
845  FT_Error error;
846  if (!fontData.isEmpty()) {
847  error = FT_New_Memory_Face(library, (const FT_Byte *)fontData.constData(), fontData.size(), index, &face);
848  } else {
849  error = FT_New_Face(library, file, index, &face);
850  }
851  if (error != FT_Err_Ok) {
852  qDebug() << "FT_New_Face failed with index" << index << ":" << hex << error;
853  break;
854  }
855  numFaces = face->num_faces;
856 
857  int weight = QFont::Normal;
858  bool italic = face->style_flags & FT_STYLE_FLAG_ITALIC;
859 
860  if (face->style_flags & FT_STYLE_FLAG_BOLD)
861  weight = QFont::Bold;
862 
864  // detect symbol fonts
865  for (int i = 0; i < face->num_charmaps; ++i) {
866  FT_CharMap cm = face->charmaps[i];
867  if (cm->encoding == ft_encoding_adobe_custom
868  || cm->encoding == ft_encoding_symbol) {
869  writingSystems.append(QFontDatabase::Symbol);
870  break;
871  }
872  }
873  if (writingSystems.isEmpty()) {
874  TT_OS2 *os2 = (TT_OS2 *)FT_Get_Sfnt_Table(face, ft_sfnt_os2);
875  if (os2) {
876  quint32 unicodeRange[4] = {
877  static_cast<quint32>(os2->ulUnicodeRange1), static_cast<quint32>(os2->ulUnicodeRange2), static_cast<quint32>(os2->ulUnicodeRange3), static_cast<quint32>(os2->ulUnicodeRange4)
878  };
879  quint32 codePageRange[2] = {
880  static_cast<quint32>(os2->ulCodePageRange1), static_cast<quint32>(os2->ulCodePageRange2)
881  };
882 
883  writingSystems = qt_determine_writing_systems_from_truetype_bits(unicodeRange, codePageRange);
884  //for (int i = 0; i < writingSystems.count(); ++i)
885  // qDebug() << QFontDatabase::writingSystemName(writingSystems.at(i));
886  }
887  }
888 
889  QString family = QString::fromAscii(face->family_name);
890  families.append(family);
891  addFont(family, /*foundry*/ "", weight, italic,
892  /*pixelsize*/ 0, file, index, /*antialias*/ true, writingSystems);
893 
894  FT_Done_Face(face);
895  ++index;
896  } while (index < numFaces);
897  return families;
898 }
static QString fromAscii(const char *, int size=-1)
Returns a QString initialized with the first size characters from the string str. ...
Definition: qstring.cpp:4276
#define error(msg)
The QString class provides a Unicode character string.
Definition: qstring.h:83
Q_CORE_EXPORT QTextStream & hex(QTextStream &s)
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
Q_CORE_EXPORT void qDebug(const char *,...)
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
struct FT_FaceRec_ * FT_Face
Definition: qfont.h:50
QtFontFamily ** families
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
QtFontFamily * family(const QString &f, bool=false)
const char * constData() const
Returns a pointer to the data stored in the byte array.
Definition: qbytearray.h:433
void addFont(const QString &familyname, const char *foundryname, int weight, bool italic, int pixelSize, const QByteArray &file, int fileIndex, bool antialiased, const QList< QFontDatabase::WritingSystem > &writingSystems=QList< QFontDatabase::WritingSystem >())
unsigned int quint32
Definition: qglobal.h:938
int size() const
Returns the number of bytes in this byte array.
Definition: qbytearray.h:402
quint16 index
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
Definition: qbytearray.h:421
FT_Library qt_getFreetype()
QList< QFontDatabase::WritingSystem > qt_determine_writing_systems_from_truetype_bits(quint32 unicodeRange[4], quint32 codePageRange[2])

◆ family()

QtFontFamily * QFontDatabasePrivate::family ( const QString f,
bool  create = false 
)

Definition at line 749 of file qfontdatabase.cpp.

Referenced by checkSymbolFonts(), initializeDb(), loadFontConfig(), loadXlfds(), populate_database(), qt_applyFontDatabaseSettings(), and qt_registerFont().

750 {
751  int low = 0;
752  int high = count;
753  int pos = count / 2;
754  int res = 1;
755  if (count) {
756  while ((res = families[pos]->name.compare(f, Qt::CaseInsensitive)) && pos != low) {
757  if (res > 0)
758  high = pos;
759  else
760  low = pos;
761  pos = (high + low) / 2;
762  }
763  if (!res)
764  return families[pos];
765  }
766  if (!create)
767  return 0;
768 
769  if (res < 0)
770  pos++;
771 
772  // qDebug() << "adding family " << f.toLatin1() << " at " << pos << " total=" << count;
773  if (!(count % 8)) {
774  QtFontFamily **newFamilies = (QtFontFamily **)
775  realloc(families,
776  (((count+8) >> 3) << 3) * sizeof(QtFontFamily *));
777  Q_CHECK_PTR(newFamilies);
778  families = newFamilies;
779  }
780 
781  QtFontFamily *family = new QtFontFamily(f);
782  memmove(families + pos + 1, families + pos, (count-pos)*sizeof(QtFontFamily *));
783  families[pos] = family;
784  count++;
785  return families[pos];
786 }
static Expression::Ptr create(Expression *const expr, const YYLTYPE &sourceLocator, const ParserContext *const parseInfo)
QtFontFamily ** families
const char * name
QtFontFamily * family(const QString &f, bool=false)
#define Q_CHECK_PTR(p)
Definition: qglobal.h:1853

◆ free()

void QFontDatabasePrivate::free ( )
inline

Definition at line 675 of file qfontdatabase.cpp.

675  {
676  while (count--)
677  delete families[count];
678  ::free(families);
679  families = 0;
680  count = 0;
681  // don't clear the memory fonts!
682  }
QtFontFamily ** families

◆ invalidate()

void QFontDatabasePrivate::invalidate ( )

Definition at line 742 of file qfontdatabase.cpp.

Referenced by registerFont(), and QFontDatabase::removeApplicationFont().

743 {
745  free();
746  emit static_cast<QApplication *>(QApplication::instance())->fontDatabaseChanged();
747 }
The QApplication class manages the GUI application&#39;s control flow and main settings.
Definition: qapplication.h:99
static QFontCache * instance()
Definition: qfont.cpp:2919
#define emit
Definition: qobjectdefs.h:76
static QCoreApplication * instance()
Returns a pointer to the application&#39;s QCoreApplication (or QApplication) instance.
void clear()
Definition: qfont.cpp:2981

◆ isApplicationFont()

bool QFontDatabasePrivate::isApplicationFont ( const QString fileName)

Definition at line 2628 of file qfontdatabase.cpp.

2629 {
2630  for (int i = 0; i < applicationFonts.count(); ++i)
2631  if (applicationFonts.at(i).fileName == fileName)
2632  return true;
2633  return false;
2634 }
QVector< ApplicationFont > applicationFonts
static QString fileName(const QString &fileUrl)

◆ loadFromCache()

bool QFontDatabasePrivate::loadFromCache ( const QString fontPath)

Definition at line 161 of file qfontdatabase_qws.cpp.

Referenced by initializeDb().

162 {
163 #ifdef Q_WS_QWS
164  const bool weAreTheServer = QWSServer::instance();
165 #else
166  const bool weAreTheServer = true; // assume single-process
167 #endif
168 
169  QString fontDirFile = fontPath + QLatin1String("/fontdir");
170 
171  QFile binaryDb(qws_fontCacheDir() + QLatin1String("/fontdb"));
172 
173  if (weAreTheServer) {
174  QDateTime dbTimeStamp = QFileInfo(binaryDb.fileName()).lastModified();
175 
176  QDateTime fontPathTimeStamp = QFileInfo(fontPath).lastModified();
177  if (dbTimeStamp < fontPathTimeStamp)
178  return false; // let the caller create the cache
179 
180  if (QFile::exists(fontDirFile)) {
181  QDateTime fontDirTimeStamp = QFileInfo(fontDirFile).lastModified();
182  if (dbTimeStamp < fontDirTimeStamp)
183  return false;
184  }
185  }
186 
187  if (!binaryDb.open(QIODevice::ReadOnly)) {
188  if (weAreTheServer)
189  return false; // let the caller create the cache
190  qFatal("QFontDatabase::loadFromCache: Could not open font database cache!");
191  }
192 
193  QDataStream stream(&binaryDb);
194  quint8 version = 0;
195  quint8 dataStreamVersion = 0;
196  stream >> version >> dataStreamVersion;
197  if (version != DatabaseVersion || dataStreamVersion != stream.version()) {
198  if (weAreTheServer)
199  return false; // let the caller create the cache
200  qFatal("QFontDatabase::loadFromCache: Wrong version of the font database cache detected. Found %d/%d expected %d/%d",
201  version, dataStreamVersion, DatabaseVersion, stream.version());
202  }
203 
204  QString originalFontPath;
205  stream >> originalFontPath;
206  if (originalFontPath != fontPath) {
207  if (weAreTheServer)
208  return false; // let the caller create the cache
209  qFatal("QFontDatabase::loadFromCache: Font path doesn't match. Found %s in database, expected %s", qPrintable(originalFontPath), qPrintable(fontPath));
210  }
211 
212  QString familyname;
213  stream >> familyname;
214  //qDebug() << "populating database from" << binaryDb.fileName();
215  while (!familyname.isEmpty() && !stream.atEnd()) {
216  QString foundryname;
217  int weight;
218  quint8 italic;
219  int pixelSize;
220  QByteArray file;
221  int fileIndex;
222  quint8 antialiased;
223  quint8 writingSystemCount;
224 
226 
227  stream >> foundryname >> weight >> italic >> pixelSize
228  >> file >> fileIndex >> antialiased >> writingSystemCount;
229 
230  for (quint8 i = 0; i < writingSystemCount; ++i) {
231  quint8 ws;
232  stream >> ws;
233  writingSystems.append(QFontDatabase::WritingSystem(ws));
234  }
235 
236  addFont(familyname, foundryname.toLatin1().constData(), weight, italic, pixelSize, file, fileIndex, antialiased,
237  writingSystems);
238 
239  stream >> familyname;
240  }
241 
243  //qDebug() << "fallback families from cache:" << fallbackFamilies;
244  return true;
245 }
Q_CORE_EXPORT QTextStream & ws(QTextStream &s)
static QWSServer * instance()
bool atEnd() const
Returns true if the I/O device has reached the end position (end of the stream or file) or if there i...
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
QString qws_fontCacheDir()
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
unsigned char quint8
Definition: qglobal.h:934
The QString class provides a Unicode character string.
Definition: qstring.h:83
bool exists() const
Returns true if the file specified by fileName() exists; otherwise returns false. ...
Definition: qfile.cpp:626
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
QStringList fallbackFamilies
static float pixelSize(const QFontDef &request, int dpi)
Definition: qfont_win.cpp:80
QByteArray toLatin1() const Q_REQUIRED_RESULT
Returns a Latin-1 representation of the string as a QByteArray.
Definition: qstring.cpp:3993
int version() const
Returns the version number of the data serialization format.
Definition: qdatastream.h:212
const char * constData() const
Returns a pointer to the data stored in the byte array.
Definition: qbytearray.h:433
void addFont(const QString &familyname, const char *foundryname, int weight, bool italic, int pixelSize, const QByteArray &file, int fileIndex, bool antialiased, const QList< QFontDatabase::WritingSystem > &writingSystems=QList< QFontDatabase::WritingSystem >())
Q_CORE_EXPORT void qFatal(const char *,...)
The QDateTime class provides date and time functions.
Definition: qdatetime.h:216
The QFile class provides an interface for reading from and writing to files.
Definition: qfile.h:65
The QDataStream class provides serialization of binary data to a QIODevice.
Definition: qdatastream.h:71
The QFileInfo class provides system-independent file information.
Definition: qfileinfo.h:60
#define qPrintable(string)
Definition: qglobal.h:1750
QDateTime lastModified() const
Returns the date and time when the file was last modified.
Definition: qfileinfo.cpp:1296

Properties

◆ applicationFonts

QVector<ApplicationFont> QFontDatabasePrivate::applicationFonts

◆ count

int QFontDatabasePrivate::count

◆ directWriteFactory

IDWriteFactory* QFontDatabasePrivate::directWriteFactory

Definition at line 691 of file qfontdatabase.cpp.

Referenced by loadEngine().

◆ directWriteGdiInterop

IDWriteGdiInterop* QFontDatabasePrivate::directWriteGdiInterop

Definition at line 692 of file qfontdatabase.cpp.

Referenced by loadEngine().

◆ fallbackFamilies

QStringList QFontDatabasePrivate::fallbackFamilies

◆ families

QtFontFamily** QFontDatabasePrivate::families

◆ reregisterAppFonts

bool QFontDatabasePrivate::reregisterAppFonts

Definition at line 714 of file qfontdatabase.cpp.

Referenced by initializeDb(), and registerFont().

◆ stream

QDataStream* QFontDatabasePrivate::stream

Definition at line 733 of file qfontdatabase.cpp.

Referenced by initializeDb(), and loadFromCache().

◆ systemLang

QString QFontDatabasePrivate::systemLang

Definition at line 686 of file qfontdatabase.cpp.

Referenced by loadFontConfig(), and registerFont().


The documentation for this class was generated from the following files: