From f567f817107ca3dd7d145d768f844e23de1357de Mon Sep 17 00:00:00 2001
From: Burak Hancerli <burak.hancerli@qt.io>
Date: Wed, 5 Feb 2025 09:42:10 +0100
Subject: [PATCH] enh: pick the qtquickconf file from the root folder

---
 CMakeLists.txt         |  1 +
 resources/version.json |  3 ++-
 src/designviewer.cpp   | 10 +++++++---
 src/designviewer.h     |  2 +-
 www/scripts/script.js  |  2 ++
 5 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2b6091e..e9e9df7 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 b5b10de..7d5e222 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 c15a6d1..bd5a6ab 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 abab211..23d35eb 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 5807964..28b959a 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
-- 
GitLab