summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfileinfo.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2019-08-29 16:22:53 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2019-08-30 13:20:07 +0200
commitca3be922349d5fa282578fbb6c1dc2bd25d1f5aa (patch)
treeff0be3de9093e606bc57edae305a2f3f564b9cc2 /src/corelib/io/qfileinfo.cpp
parentf00bbd5eb77d0d4669e0a15a277c3937c49ed813 (diff)
Remove QFileInfo::type and related enum from 5.14
The API is problematic for several reasons: - the mixing of flags and enum in a single enum type - the name "type" as somewhat overloaded - the ease of misuse when comparing the result rather than testing for a bit being set In light of this, focus for 5.14 on the new isShortcut and isSymbolicLink functions, thus migitating the problematic isSymLink which conflates the two concepts. Change-Id: I57e02321edd5061f69a775f04a0932ef89adf866 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/corelib/io/qfileinfo.cpp')
-rw-r--r--src/corelib/io/qfileinfo.cpp93
1 files changed, 27 insertions, 66 deletions
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index b720966d8f..a6f8b45ea3 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -311,19 +311,6 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request)
*/
/*!
- \enum QFileInfo::FileType
-
- This enum is returned by type() to describe the type of the file system
- entity described by the QFileInfo object.
-
- \value Unknown The object refers to an unknown item.
- \value Regular The object refers to a regular file.
- \value Directory The object refers to a directory.
- \value SymbolicLink The object refers to a symbolic link.
- \value Shortcut The object refers to a shortcut.
-*/
-
-/*!
\fn QFileInfo &QFileInfo::operator=(QFileInfo &&other)
Move-assigns \a other to this QFileInfo instance.
@@ -1008,7 +995,11 @@ bool QFileInfo::isNativePath() const
*/
bool QFileInfo::isFile() const
{
- return (type() & FileTypeMask) == Regular;
+ Q_D(const QFileInfo);
+ return d->checkAttribute<bool>(
+ QFileSystemMetaData::FileType,
+ [d]() { return d->metaData.isFile(); },
+ [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); });
}
/*!
@@ -1019,7 +1010,11 @@ bool QFileInfo::isFile() const
*/
bool QFileInfo::isDir() const
{
- return (type() & FileTypeMask) == Directory;
+ Q_D(const QFileInfo);
+ return d->checkAttribute<bool>(
+ QFileSystemMetaData::DirectoryType,
+ [d]() { return d->metaData.isDirectory(); },
+ [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); });
}
@@ -1070,8 +1065,6 @@ bool QFileInfo::isSymLink() const
}
/*!
- \fn bool QFileInfo::isSymbolicLink() const
-
Returns \c true if this object points to a symbolic link;
otherwise returns \c false.
@@ -1091,9 +1084,16 @@ bool QFileInfo::isSymLink() const
\sa isFile(), isDir(), isShortcut(), symLinkTarget()
*/
-/*!
- \fn bool QFileInfo::isShortcut() const
+bool QFileInfo::isSymbolicLink() const
+{
+ Q_D(const QFileInfo);
+ return d->checkAttribute<bool>(
+ QFileSystemMetaData::LegacyLinkType,
+ [d]() { return d->metaData.isLink(); },
+ [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); });
+}
+/*!
Returns \c true if this object points to a shortcut;
otherwise returns \c false.
@@ -1110,6 +1110,14 @@ bool QFileInfo::isSymLink() const
\sa isFile(), isDir(), isSymbolicLink(), symLinkTarget()
*/
+bool QFileInfo::isShortcut() const
+{
+ Q_D(const QFileInfo);
+ return d->checkAttribute<bool>(
+ QFileSystemMetaData::LegacyLinkType,
+ [d]() { return d->metaData.isLnkFile(); },
+ [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); });
+}
/*!
Returns \c true if the object points to a directory or to a symbolic
@@ -1314,53 +1322,6 @@ qint64 QFileInfo::size() const
});
}
-/*!
- Returns the QFileInfo::FileTypes.
-
- QFileInfo::FileTypes combines with an indirection flag (link type) and a
- base type it refers to.
-
- For example, \c SymbolicLink combines with \c Regular meaning a symlink to
- a regular file.
-
- In addition, FileTypeMask and LinkTypeMask are used to extract the base
- type and link type respectively.
-
- \sa isFile(), isDir(), isShortcut(), isSymbolicLink()
-*/
-QFileInfo::FileTypes QFileInfo::type() const
-{
- Q_D(const QFileInfo);
-
- QFileInfo::FileTypes type = QFileInfo::Unknown;
- if (d->checkAttribute<bool>(
- QFileSystemMetaData::LegacyLinkType,
- [d]() { return d->metaData.isLnkFile(); },
- [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) {
- type = QFileInfo::Shortcut;
- } else if (d->checkAttribute<bool>(
- QFileSystemMetaData::LegacyLinkType,
- [d]() { return d->metaData.isLink(); },
- [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) {
- type = QFileInfo::SymbolicLink;
- }
-
- if (d->checkAttribute<bool>(
- QFileSystemMetaData::DirectoryType,
- [d]() { return d->metaData.isDirectory(); },
- [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); })) {
- return type | QFileInfo::Directory;
- }
-
- if (d->checkAttribute<bool>(
- QFileSystemMetaData::FileType,
- [d]() { return d->metaData.isFile(); },
- [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); })) {
- return type | QFileInfo::Regular;
- }
- return type;
-}
-
#if QT_DEPRECATED_SINCE(5, 10)
/*!
\deprecated