diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2012-08-07 19:45:16 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-25 00:08:16 +0200 |
commit | 07c44f7bd3c0b6061cba5a525995f616f1083672 (patch) | |
tree | 3f7574c198c15fd1bfa6d363231c270b2016fa45 | |
parent | 0c2b7b1020384c095500599a687a88306f98c0f6 (diff) |
QFileInfoGatherer: general cleanups
- fix typo in comment
- make translateDriveName file-static
- use QList::reserve()
- explicit ctor
- annotate functions called by owning thread/run()
- iconProvider() and resolveSymlinks() shouldn't be slots
- private instead of protected
- run() marked Q_DECL_OVERRIDE
- annotate which members are protected by 'mutex'
Change-Id: Ic176a030b0597c98f48185efd17260fd62532460
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
-rw-r--r-- | src/widgets/dialogs/qfileinfogatherer.cpp | 5 | ||||
-rw-r--r-- | src/widgets/dialogs/qfileinfogatherer_p.h | 21 |
2 files changed, 14 insertions, 12 deletions
diff --git a/src/widgets/dialogs/qfileinfogatherer.cpp b/src/widgets/dialogs/qfileinfogatherer.cpp index d1718bb5bf..22a7d50f7c 100644 --- a/src/widgets/dialogs/qfileinfogatherer.cpp +++ b/src/widgets/dialogs/qfileinfogatherer.cpp @@ -129,7 +129,7 @@ QFileIconProvider *QFileInfoGatherer::iconProvider() const void QFileInfoGatherer::fetchExtendedInformation(const QString &path, const QStringList &files) { QMutexLocker locker(&mutex); - // See if we already have this dir/file in our que + // See if we already have this dir/file in our queue int loc = this->path.lastIndexOf(path); while (loc > 0) { if (this->files.at(loc) == files) { @@ -243,7 +243,7 @@ QExtendedInformation QFileInfoGatherer::getInfo(const QFileInfo &fileInfo) const return info; } -QString QFileInfoGatherer::translateDriveName(const QFileInfo &drive) const +static QString translateDriveName(const QFileInfo &drive) { QString driveName = drive.absoluteFilePath(); #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) @@ -280,6 +280,7 @@ void QFileInfoGatherer::getFileInfos(const QString &path, const QStringList &fil if (files.isEmpty()) { infoList = QDir::drives(); } else { + infoList.reserve(files.count()); for (int i = 0; i < files.count(); ++i) infoList << QFileInfo(files.at(i)); } diff --git a/src/widgets/dialogs/qfileinfogatherer_p.h b/src/widgets/dialogs/qfileinfogatherer_p.h index e3bfb067f6..9837b1aa08 100644 --- a/src/widgets/dialogs/qfileinfogatherer_p.h +++ b/src/widgets/dialogs/qfileinfogatherer_p.h @@ -157,36 +157,37 @@ Q_SIGNALS: void directoryLoaded(const QString &path); public: - QFileInfoGatherer(QObject *parent = 0); + explicit QFileInfoGatherer(QObject *parent = 0); ~QFileInfoGatherer(); + // only callable from this->thread(): void clear(); void removePath(const QString &path); QExtendedInformation getInfo(const QFileInfo &info) const; + QFileIconProvider *iconProvider() const; + bool resolveSymlinks() const; public Q_SLOTS: void list(const QString &directoryPath); void fetchExtendedInformation(const QString &path, const QStringList &files); void updateFile(const QString &path); void setResolveSymlinks(bool enable); - bool resolveSymlinks() const; void setIconProvider(QFileIconProvider *provider); - QFileIconProvider *iconProvider() const; - -protected: - void run(); - void getFileInfos(const QString &path, const QStringList &files); private: + void run() Q_DECL_OVERRIDE; + // called by run(): + void getFileInfos(const QString &path, const QStringList &files); void fetch(const QFileInfo &info, QElapsedTimer &base, bool &firstTime, QList<QPair<QString, QFileInfo> > &updatedFiles, const QString &path); - QString translateDriveName(const QFileInfo &drive) const; +private: mutable QMutex mutex; + // begin protected by mutex QWaitCondition condition; - QAtomicInt abort; - QStack<QString> path; QStack<QStringList> files; + // end protected by mutex + QAtomicInt abort; #ifndef QT_NO_FILESYSTEMWATCHER QFileSystemWatcher *watcher; |