Use newly-added QFileInfo::isNativePath
Don't indirect over internal API. With QAbstractFileEngine and friends on the way out, QFile is losing its (marked internal) virtual fileEngine() function and the file engine can't be queried for LocalDiskFlag. That information is now available through QFileInfo, instead. Change-Id: I48827a96fd8cd748055ad5f075912fc8e1c5ef7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
This commit is contained in:
parent
5c637e9171
commit
731da2a6ab
@ -39,7 +39,6 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <qdir.h>
|
||||
#include "qfontdatabase.h"
|
||||
#include "qdebug.h"
|
||||
#include "qalgorithms.h"
|
||||
@ -47,12 +46,13 @@
|
||||
#include "qvarlengtharray.h" // here or earlier - workaround for VC++6
|
||||
#include "qthread.h"
|
||||
#include "qmutex.h"
|
||||
#include "qfile.h"
|
||||
#include "qfileinfo.h"
|
||||
#include "private/qunicodetables_p.h"
|
||||
#include "qfontengine_p.h"
|
||||
|
||||
#include <QtGui/private/qguiapplication_p.h>
|
||||
#include <QtGui/qplatformfontdatabase_qpa.h>
|
||||
#include "qabstractfileengine.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
@ -2203,8 +2203,8 @@ bool QFontDatabasePrivate::isApplicationFont(const QString &fileName)
|
||||
int QFontDatabase::addApplicationFont(const QString &fileName)
|
||||
{
|
||||
QByteArray data;
|
||||
QFile f(fileName);
|
||||
if (!(f.fileEngine()->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::LocalDiskFlag)) {
|
||||
if (!QFileInfo(fileName).isNativePath()) {
|
||||
QFile f(fileName);
|
||||
if (!f.open(QIODevice::ReadOnly))
|
||||
return -1;
|
||||
data = f.readAll();
|
||||
|
@ -49,7 +49,7 @@
|
||||
#ifndef QT_NO_FREETYPE
|
||||
|
||||
#include "qfile.h"
|
||||
#include "qabstractfileengine.h"
|
||||
#include "qfileinfo.h"
|
||||
#include "qthreadstorage.h"
|
||||
#include <qmath.h>
|
||||
|
||||
@ -231,7 +231,7 @@ QFreetypeFace *QFreetypeFace::getFace(const QFontEngine::FaceId &face_id,
|
||||
QScopedPointer<QFreetypeFace> newFreetype(new QFreetypeFace);
|
||||
FT_Face face;
|
||||
if (!face_id.filename.isEmpty()) {
|
||||
QFile file(QString::fromUtf8(face_id.filename));
|
||||
QString fileName = QString::fromUtf8(face_id.filename);
|
||||
if (face_id.filename.startsWith(":qmemoryfonts/")) {
|
||||
// from qfontdatabase.cpp
|
||||
QByteArray idx = face_id.filename;
|
||||
@ -240,7 +240,8 @@ QFreetypeFace *QFreetypeFace::getFace(const QFontEngine::FaceId &face_id,
|
||||
newFreetype->fontData = qt_fontdata_from_index(idx.toInt(&ok));
|
||||
if (!ok)
|
||||
newFreetype->fontData = QByteArray();
|
||||
} else if (!(file.fileEngine()->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::LocalDiskFlag)) {
|
||||
} else if (!QFileInfo(fileName).isNativePath()) {
|
||||
QFile file(fileName);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user