diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index 8f782bd792c6fe5ae8a9eb53d2d82f9a0b6d9527..2808520c167e85e4d641a5a6ec74474073fc4ee9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -56,6 +56,7 @@ #include <qt4project.h> #include <qt4target.h> +#include <QtCore/QDateTime> #include <QtCore/QProcess> #include <QtCore/QProcessEnvironment> #include <QtCore/QRegExp> @@ -401,9 +402,8 @@ bool MaemoPackageCreationStep::packagingNeeded() const const int deployableCount = deployables->deployableCount(); for (int i = 0; i < deployableCount; ++i) { - if (packageInfo.lastModified() - <= QFileInfo(deployables->deployableAt(i).localFilePath) - .lastModified()) + if (isFileNewerThan(deployables->deployableAt(i).localFilePath, + packageInfo.lastModified())) return true; } @@ -423,6 +423,25 @@ bool MaemoPackageCreationStep::packagingNeeded() const return false; } +bool MaemoPackageCreationStep::isFileNewerThan(const QString &filePath, + const QDateTime &timeStamp) const +{ + QFileInfo fileInfo(filePath); + if (!fileInfo.exists() || fileInfo.lastModified() >= timeStamp) + return true; + if (fileInfo.isDir()) { + const QStringList dirContents = QDir(filePath) + .entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); + foreach (const QString &curFileName, dirContents) { + const QString curFilePath + = filePath + QLatin1Char('/') + curFileName; + if (isFileNewerThan(curFilePath, timeStamp)) + return true; + } + } + return false; +} + QString MaemoPackageCreationStep::packageFilePath() const { QString error; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h index ed5fe6efb950ec524db3b56f4cd5db98b8b76243..bacd7ec4779722b4de03f5d5e2d65ebd75b24e39 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h @@ -45,6 +45,7 @@ #include <projectexplorer/buildstep.h> QT_BEGIN_NAMESPACE +class QDateTime; class QFile; class QProcess; QT_END_NAMESPACE @@ -112,6 +113,8 @@ private: QString targetRoot() const; static QString nativePath(const QFile &file); bool packagingNeeded() const; + bool isFileNewerThan(const QString &filePath, + const QDateTime &timeStamp) const; void raiseError(const QString &shortMsg, const QString &detailedMsg = QString()); QString buildDirectory() const;