diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qdir.cpp | 14 | ||||
-rw-r--r-- | src/corelib/io/qdir.h | 19 | ||||
-rw-r--r-- | src/corelib/io/qfileinfo.cpp | 5 | ||||
-rw-r--r-- | src/corelib/io/qfileinfo.h | 10 |
4 files changed, 33 insertions, 15 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index e7fdc4ad55..32fd81981b 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -508,6 +508,13 @@ inline void QDirPrivate::initFileEngine() */ /*! + \internal +*/ +QDir::QDir(QDirPrivate &p) : d_ptr(&p) +{ +} + +/*! Constructs a QDir pointing to the given directory \a path. If path is empty the program's working directory, ("."), is used. @@ -2097,6 +2104,13 @@ void QDir::refresh() const d->clearFileLists(); } +/*! \internal +*/ +QDirPrivate* QDir::d_func() +{ + return d_ptr.data(); +} + /*! \internal diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h index de5fb1bf00..822173dfc8 100644 --- a/src/corelib/io/qdir.h +++ b/src/corelib/io/qdir.h @@ -57,9 +57,6 @@ class QDirPrivate; class Q_CORE_EXPORT QDir { -protected: - QSharedDataPointer<QDirPrivate> d_ptr; - public: enum Filter { Dirs = 0x001, Files = 0x002, @@ -99,7 +96,7 @@ public: Reversed = 0x08, IgnoreCase = 0x10, DirsLast = 0x20, - LocaleAware = 0x40, + LocaleAware = 0x40, Type = 0x80, NoSort = -1 }; @@ -208,6 +205,20 @@ public: static QString cleanPath(const QString &path); void refresh() const; + +protected: + explicit QDir(QDirPrivate &d); + + QSharedDataPointer<QDirPrivate> d_ptr; + +private: + // Q_DECLARE_PRIVATE equivalent for shared data pointers + QDirPrivate* d_func(); + inline const QDirPrivate* d_func() const + { + return d_ptr.constData(); + } + }; Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::Filters) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 7d925f380b..1ea6c8d50a 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -1275,11 +1275,10 @@ QDateTime QFileInfo::lastRead() const } /*! \internal - Detaches all internal data. */ -void QFileInfo::detach() +QFileInfoPrivate* QFileInfo::d_func() { - d_ptr.detach(); + return d_ptr.data(); } /*! diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index ab3d2dc847..ef4573132c 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -132,20 +132,14 @@ public: QDateTime lastModified() const; QDateTime lastRead() const; - void detach(); - bool caching() const; void setCaching(bool on); protected: QSharedDataPointer<QFileInfoPrivate> d_ptr; -private: - inline QFileInfoPrivate* d_func() - { - detach(); - return const_cast<QFileInfoPrivate *>(d_ptr.constData()); - } +private: + QFileInfoPrivate* d_func(); inline const QFileInfoPrivate* d_func() const { return d_ptr.constData(); |