4#ifndef QTEMPORARYFILE_P_H
5#define QTEMPORARYFILE_P_H
18#include <QtCore/qglobal.h>
20#include "private/qfsfileengine_p.h"
21#include "private/qfilesystemengine_p.h"
22#include "private/qfile_p.h"
25#if defined(Q_OS_LINUX) && QT_CONFIG(linkat)
30# if (O_TMPFILE & O_DIRECTORY) == O_DIRECTORY
31# define LINUX_UNNAMED_TMPFILE
48#if QT_CONFIG(temporaryfile)
52 Q_DECLARE_PUBLIC(QTemporaryFile)
55 QTemporaryFilePrivate();
56 explicit QTemporaryFilePrivate(
const QString &templateNameIn);
57 ~QTemporaryFilePrivate();
60 void resetFileEngine()
const;
61 void materializeUnnamedFile();
63 bool autoRemove =
true;
64 QString templateName = defaultTemplateName();
66 static QString defaultTemplateName();
75 enum Flags { Win32NonShared = 0x1 };
77 explicit QTemporaryFileEngine(
const QString *_templateName,
int _flags = 0)
78 : templateName(*_templateName),
flags(_flags)
86 filePathIsTemplate = filePathWasTemplate = nameIsTemplate;
88 if (filePathIsTemplate) {
94 ~QTemporaryFileEngine();
96 bool isReallyOpen()
const;
99 bool open(QIODevice::OpenMode
flags, std::optional<QFile::Permissions> permissions)
override;
101 bool rename(
const QString &newName)
override;
102 bool renameOverwrite(
const QString &newName)
override;
103 bool close()
override;
106 enum MaterializationMode {
Overwrite, DontOverwrite, NameIsTemplate };
107 bool materializeUnnamedFile(
const QString &newName, MaterializationMode
mode);
108 bool isUnnamedFile() const override final;
113 bool filePathIsTemplate = true;
114 bool filePathWasTemplate = true;
115 bool unnamedFile =
false;
\inmodule QtCore \reentrant
void setFileEntry(QFileSystemEntry &&entry)
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
file setFileName("readme.txt")
file open(QIODevice::ReadOnly)
settings remove("monkey")
QTemporaryFileName(const QString &templateName)
QFileSystemEntry::NativePath generateNext()
QFileSystemEntry::NativePath path