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:
João Abecasis 2012-02-04 01:00:51 +01:00 committed by Qt by Nokia
parent 5c637e9171
commit 731da2a6ab
2 changed files with 8 additions and 7 deletions

View File

@ -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();

View File

@ -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;
}