QmlDesigner: Prioritize hiding asset_imports content in UrlChooser

If the same file is available under asset_imports and outside it,
prefer hiding the copy under asset_imports in UrlChooser when duplicate
hiding is enabled.

Fixes: QDS-11908
Change-Id: I06ac298e1ea45f6a94c66eb20cc4c0d4655103f4
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Miikka Heikkinen
2024-02-05 17:09:35 +02:00
parent 87dd0096b4
commit c491d652ab

View File

@@ -425,7 +425,7 @@ Row {
// QtDS very slow. This will happen when selecting different items in the scene. // QtDS very slow. This will happen when selecting different items in the scene.
comboBox.model = {} comboBox.model = {}
let nameSet = new Set; let nameMap = new Map;
if (root.defaultItems !== undefined) { if (root.defaultItems !== undefined) {
for (var i = 0; i < root.defaultItems.length; ++i) { for (var i = 0; i < root.defaultItems.length; ++i) {
@@ -437,22 +437,32 @@ Row {
name: root.defaultItems[i], name: root.defaultItems[i],
group: 0 group: 0
}) })
nameSet.add(root.defaultItems[i]) nameMap.set(root.defaultItems[i], i)
} }
} }
const myModel = fileModel.model const myModel = fileModel.model
for (var j = 0; j < myModel.length; ++j) { for (var j = 0; j < myModel.length; ++j) {
let item = myModel[j] let item = myModel[j]
if (root.hideDuplicates && nameMap.has(item.fileName)) {
if (!root.hideDuplicates || !nameSet.has(item.fileName)) { // Prefer hiding imported asset files rather than other project files
let listIndex = nameMap.get(item.fileName)
if (comboBox.listModel.get(listIndex).absoluteFilePath.includes("/asset_imports/")) {
comboBox.listModel.set(listIndex, {
absoluteFilePath: item.absoluteFilePath,
relativeFilePath: item.relativeFilePath,
name: item.fileName,
group: 1
})
}
} else {
comboBox.listModel.append({ comboBox.listModel.append({
absoluteFilePath: item.absoluteFilePath, absoluteFilePath: item.absoluteFilePath,
relativeFilePath: item.relativeFilePath, relativeFilePath: item.relativeFilePath,
name: item.fileName, name: item.fileName,
group: 1 group: 1
}) })
nameSet.add(item.fileName) nameMap.set(item.fileName, comboBox.listModel.count - 1)
} }
} }