summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/artifactcleaner.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-03-26 11:47:44 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2013-03-26 12:22:54 +0100
commit55b848f530e18ae1f8294f05fb1971aa578dd956 (patch)
tree358b72692e01e255b9749fd461cbfe959aa9b445 /src/lib/buildgraph/artifactcleaner.cpp
parenta222a9c4fcbd9b315ea5c759ff09ea89f76ab825 (diff)
downloadqbs-55b848f530e18ae1f8294f05fb1971aa578dd956.tar.gz
Add option to log how much time an operation takes.
This is an interesting information that people might want independently of debugging output. Change-Id: I4a1e3c31cfce6546b43bd2f5f343bf297d764a42 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/buildgraph/artifactcleaner.cpp')
-rw-r--r--src/lib/buildgraph/artifactcleaner.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/buildgraph/artifactcleaner.cpp b/src/lib/buildgraph/artifactcleaner.cpp
index af3a2433c..be2d3525a 100644
--- a/src/lib/buildgraph/artifactcleaner.cpp
+++ b/src/lib/buildgraph/artifactcleaner.cpp
@@ -41,6 +41,7 @@
#include <tools/cleanoptions.h>
#include <tools/error.h>
#include <tools/fileinfo.h>
+#include <tools/progressobserver.h>
#include <QCoreApplication>
#include <QDir>
@@ -130,22 +131,24 @@ private:
QSet<QString> m_directories;
};
-ArtifactCleaner::ArtifactCleaner(const Logger &logger) : m_logger(logger)
+ArtifactCleaner::ArtifactCleaner(const Logger &logger, ProgressObserver *observer)
+ : m_logger(logger), m_observer(observer)
{
}
void ArtifactCleaner::cleanup(const QList<BuildProductPtr> &products, const CleanOptions &options)
{
m_hasError = false;
- TimedActivityLogger logger(m_logger, QLatin1String("Cleaning up"));
QSet<QString> directories;
+ m_observer->initialize(Tr::tr("Cleaning up"), products.count() + 1);
foreach (const BuildProductConstPtr &product, products) {
CleanupVisitor visitor(options, m_logger);
visitor.visitProduct(product);
directories.unite(visitor.directories());
if (visitor.hasError())
m_hasError = true;
+ m_observer->incrementProgressValue();
}
// Directories created during the build are not artifacts (TODO: should they be?),
@@ -154,9 +157,11 @@ void ArtifactCleaner::cleanup(const QList<BuildProductPtr> &products, const Clea
if (FileInfo(dir).exists())
removeEmptyDirectories(dir, options);
}
+ m_observer->incrementProgressValue();
if (m_hasError)
throw Error(Tr::tr("Failed to remove some files."));
+ m_observer->setFinished();
}
void ArtifactCleaner::removeEmptyDirectories(const QString &rootDir, const CleanOptions &options,