diff options
Diffstat (limited to 'src/corelib/io/qtemporaryfile.cpp')
-rw-r--r-- | src/corelib/io/qtemporaryfile.cpp | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp index b80ba6eee1..75681dadff 100644 --- a/src/corelib/io/qtemporaryfile.cpp +++ b/src/corelib/io/qtemporaryfile.cpp @@ -407,6 +407,8 @@ protected: QTemporaryFilePrivate(); ~QTemporaryFilePrivate(); + QAbstractFileEngine *engine() const; + bool autoRemove; QString templateName; }; @@ -419,6 +421,17 @@ QTemporaryFilePrivate::~QTemporaryFilePrivate() { } +QAbstractFileEngine *QTemporaryFilePrivate::engine() const +{ + if (!fileEngine) { + if (fileName.isEmpty()) + fileEngine = new QTemporaryFileEngine(templateName); + else + fileEngine = new QTemporaryFileEngine(fileName, false); + } + return fileEngine; +} + static QString defaultTemplateName() { QString baseName; @@ -640,7 +653,7 @@ QString QTemporaryFile::fileName() const Q_D(const QTemporaryFile); if(d->fileName.isEmpty()) return QString(); - return fileEngine()->fileName(QAbstractFileEngine::DefaultName); + return d->engine()->fileName(QAbstractFileEngine::DefaultName); } /*! @@ -692,7 +705,7 @@ void QTemporaryFile::setFileTemplate(const QString &name) */ QTemporaryFile *QTemporaryFile::createLocalFile(QFile &file) { - if (QAbstractFileEngine *engine = file.fileEngine()) { + if (QAbstractFileEngine *engine = file.d_func()->engine()) { if(engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::LocalDiskFlag) return 0; //local already //cache @@ -726,22 +739,6 @@ QTemporaryFile *QTemporaryFile::createLocalFile(QFile &file) } /*! - \internal -*/ - -QAbstractFileEngine *QTemporaryFile::fileEngine() const -{ - Q_D(const QTemporaryFile); - if(!d->fileEngine) { - if (d->fileName.isEmpty()) - d->fileEngine = new QTemporaryFileEngine(d->templateName); - else - d->fileEngine = new QTemporaryFileEngine(d->fileName, false); - } - return d->fileEngine; -} - -/*! \reimp Creates a unique file name for the temporary file, and opens it. You can @@ -752,7 +749,7 @@ bool QTemporaryFile::open(OpenMode flags) { Q_D(QTemporaryFile); if (!d->fileName.isEmpty()) { - if (static_cast<QTemporaryFileEngine*>(fileEngine())->isReallyOpen()) { + if (static_cast<QTemporaryFileEngine*>(d->engine())->isReallyOpen()) { setOpenMode(flags); return true; } |