From 3a052a4d483eb9a03bfa6cb2d20977176621782a Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Fri, 4 Apr 2025 13:13:55 +0200 Subject: [PATCH] QmlDesigner: Fix ProjectStoragePathWatcher::checkForChangeInDirectory The ids should be unique. Change-Id: Idee63b4631ca24602553af4caecb49bec7c97d69 Reviewed-by: Marco Bubke Reviewed-by: Thomas Hartmann --- .../designercore/projectstorage/projectstoragepathwatcher.h | 2 ++ .../unittests/projectstorage/projectstoragepathwatcher-test.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstoragepathwatcher.h b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstoragepathwatcher.h index 6b86a4b5cf0..e07571f665c 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstoragepathwatcher.h +++ b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstoragepathwatcher.h @@ -88,6 +88,8 @@ public: void checkForChangeInDirectory(SourceContextIds sourceContextIds) override { std::ranges::sort(sourceContextIds); + auto removed = std::ranges::unique(sourceContextIds); + sourceContextIds.erase(removed.begin(), removed.end()); addChangedPathForFilePath(sourceContextIds); } diff --git a/tests/unit/tests/unittests/projectstorage/projectstoragepathwatcher-test.cpp b/tests/unit/tests/unittests/projectstorage/projectstoragepathwatcher-test.cpp index 25c3895f818..69ff6ac423f 100644 --- a/tests/unit/tests/unittests/projectstorage/projectstoragepathwatcher-test.cpp +++ b/tests/unit/tests/unittests/projectstorage/projectstoragepathwatcher-test.cpp @@ -433,7 +433,7 @@ TEST_F(ProjectStoragePathWatcher, trigger_manual_two_notify_file_changes) ElementsAre(IdPaths{projectChunkId1, {sourceIds[0], sourceIds[1]}}, IdPaths{projectChunkId2, {sourceIds[0], sourceIds[1], sourceIds[3]}}))); - watcher.checkForChangeInDirectory({sourceIds[0].contextId(), sourceIds[1].contextId()}); + watcher.checkForChangeInDirectory({sourceIds[0].contextId(), sourceIds[2].contextId()}); } TEST_F(ProjectStoragePathWatcher, trigger_manual_notify_for_path_changes)