diff options
author | kh1 <karsten.heimrich@digia.com> | 2013-09-16 14:21:23 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2013-09-20 12:48:25 +0200 |
commit | e2b967f5d8ba5421cf1a026d498a6de77962362c (patch) | |
tree | 278f9c1e5ba476470ae9b1167271035e10404c79 | |
parent | 4cc748a04410e40ac4c78ab8c16c56b9d4055516 (diff) |
Small cleanup.
Change-Id: I4c0732ac03dc98bd5ed59b6924d551c2303db407
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
-rw-r--r-- | src/libs/installer/fileutils.cpp | 3 | ||||
-rw-r--r-- | src/libs/kdtools/kdupdaterupdateoperations.cpp | 27 |
2 files changed, 12 insertions, 18 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp index 9fb782fec..1fd5bf35c 100644 --- a/src/libs/installer/fileutils.cpp +++ b/src/libs/installer/fileutils.cpp @@ -282,8 +282,7 @@ void QInstaller::removeDirectory(const QString &path, bool ignoreErrors) QDirIterator it(path, QDir::NoDotAndDotDot | QDir::Dirs | QDir::NoSymLinks | QDir::Hidden, QDirIterator::Subdirectories); while (it.hasNext()) { - it.next(); - dirs.prepend(it.filePath()); + dirs.prepend(it.next()); removeFiles(dirs.at(0), ignoreErrors); } diff --git a/src/libs/kdtools/kdupdaterupdateoperations.cpp b/src/libs/kdtools/kdupdaterupdateoperations.cpp index 5a4296242..854449bc0 100644 --- a/src/libs/kdtools/kdupdaterupdateoperations.cpp +++ b/src/libs/kdtools/kdupdaterupdateoperations.cpp @@ -65,29 +65,24 @@ static QString errnoToQString(int error) #endif } -static bool removeDirectory(const QString &path, QString *errorString, bool force = true) +static bool removeDirectory(const QString &path, QString *errorString, bool force) { Q_ASSERT(errorString); - const QFileInfoList entries = QDir(path).entryInfoList(QDir::NoDotAndDotDot | QDir::AllEntries | QDir::Hidden); - for (QFileInfoList::const_iterator it = entries.constBegin(); it != entries.constEnd(); ++it) { - if (it->isDir() && !it->isSymLink()) { - removeDirectory(it->filePath(), errorString, force); - } else if (force) { - QFile f(it->filePath()); - if (!f.remove()) - return false; - } + + QDir dir = path; + const QFileInfoList entries = dir.entryInfoList(QDir::NoDotAndDotDot | QDir::AllEntries | QDir::Hidden); + foreach (const QFileInfo &entry, entries) { + if (entry.isDir() && (!entry.isSymLink())) + removeDirectory(entry.filePath(), errorString, force); + else if (force && (!QFile(entry.filePath()).remove())) + return false; } // even remove some hidden, OS-created files in there -#if defined Q_OS_MAC - QFile::remove(path + QLatin1String("/.DS_Store")); -#elif defined Q_OS_WIN - QFile::remove(path + QLatin1String("/Thumbs.db")); -#endif + QInstaller::removeSystemGeneratedFiles(path); errno = 0; - const bool success = QDir().rmdir(path); + const bool success = dir.rmdir(path); if (errno) *errorString = errnoToQString(errno); return success; |