diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2b6091ecc53f71c6f0246205fdcc4641a7370ed2..e9e9df746b87a2215dbe89bd43e4395f1579159f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,6 +123,7 @@ endif()
 execute_process(COMMAND git describe --always --tags OUTPUT_VARIABLE GIT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
 execute_process(COMMAND git -C ${CMAKE_SOURCE_DIR}/qtquickdesigner-components describe --always --tags OUTPUT_VARIABLE QT_QUICK_COMPONENTS_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
 execute_process(COMMAND git -C ${CMAKE_SOURCE_DIR}/emsdk describe --always --tags OUTPUT_VARIABLE EMSDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+string(TIMESTAMP BUILD_DATE_TIME "%Y-%m-%d %H:%M")
 
 configure_file(${CMAKE_SOURCE_DIR}/resources/version.json  ${CMAKE_INSTALL_PREFIX}/resources/meta-data/version.json)
 
diff --git a/resources/version.json b/resources/version.json
index b5b10deba8db9f59d8e2a6a6cde2a6b77fd591e2..7d5e222e663f295eb6357e4b1da4d601b178c348 100644
--- a/resources/version.json
+++ b/resources/version.json
@@ -2,5 +2,6 @@
   "appVersion": "@GIT_VERSION@",
   "qtVersion": "@QT_VERSION@",
   "qtQuickComponentsVersion": "@QT_QUICK_COMPONENTS_VERSION@",
-  "emsdkVersion": "@EMSDK_VERSION@"
+  "emsdkVersion": "@EMSDK_VERSION@",
+  "buildDateTime": "@BUILD_DATE_TIME@"
 }
diff --git a/src/designviewer.cpp b/src/designviewer.cpp
index c15a6d1fcdc4d31412314aba42560d06f8a387e4..bd5a6abc89fc842c05051facbd67ed6b1066765f 100644
--- a/src/designviewer.cpp
+++ b/src/designviewer.cpp
@@ -92,9 +92,13 @@ QString DesignViewer::unpackProject(const QByteArray &project)
     return QString(resourcePath).prepend(":");
 }
 
-QString DesignViewer::findFile(const QString &dir, const QString &filter)
+QString DesignViewer::findFile(const QString &dir, const QString &filter, const bool recursive)
 {
-    QDirIterator it(dir, {filter}, QDir::Files, QDirIterator::Subdirectories);
+    QDirIterator it(dir,
+                    {filter},
+                    QDir::Files,
+                    recursive ? QDirIterator::Subdirectories : QDirIterator::NoIteratorFlags);
+
     return it.next();
 }
 
@@ -206,7 +210,7 @@ bool DesignViewer::runProject(const QByteArray &projectData, const QString &proj
     }
 
     qDebug() << "Looking for qtquickcontrols2File in " + projectLocation;
-    const QString qtquickcontrols2File = findFile(projectLocation, "qtquickcontrols2.conf");
+    const QString qtquickcontrols2File = findFile(projectLocation, "qtquickcontrols2.conf", false);
 
     if (!qtquickcontrols2File.isEmpty()) {
         qDebug() << "Found qtquickcontrols2File: " + qtquickcontrols2File;
diff --git a/src/designviewer.h b/src/designviewer.h
index abab211217cd7754a2b9d51929da612f9e38b2a9..23d35eb727d11750326f2ecd882af819fd02898f 100644
--- a/src/designviewer.h
+++ b/src/designviewer.h
@@ -53,7 +53,7 @@ private:
 
     void fetchProject(QByteArray *data, QString *fileName);
     QString unpackProject(const QByteArray &project);
-    QString findFile(const QString &dir, const QString &filter);
+    QString findFile(const QString &dir, const QString &filter, const bool recursive = true);
     void parseQmlprojectFile(const QString &fileName, QString *mainFile, QStringList *importPaths);
     bool runProject(const QByteArray &projectData, const QString &projectName);
 };
diff --git a/www/scripts/script.js b/www/scripts/script.js
index 5807964fbd06497547322c5a0cd1d9842f621a35..28b959a2e0256834f85920c9a97cbf18ac539158 100644
--- a/www/scripts/script.js
+++ b/www/scripts/script.js
@@ -228,8 +228,10 @@ function showVersionInfo() {
         var qtQuickComponentsVersion = json.qtQuickComponentsVersion;
         var emsdkVersion = json.emsdkVersion;
         var webServiceVersion = json.webServiceVersion;
+        var buildDateTime = json.buildDateTime;
         var versionText =
             "Design Viewer " + appVersion +
+            "<br>Built on " + buildDateTime +
             "<br>Qt Quick Components " + qtQuickComponentsVersion +
             "<br>Emscripten SDK " + emsdkVersion +
             "<br>Built with Qt " + qtVersion