mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
Merge pull request #12989 from Triplelexx/21774_file_browser
Worklist #21774: Fix Windows.browseAssets() bugs
This commit is contained in:
commit
9e9852d67b
1 changed files with 32 additions and 11 deletions
|
@ -20,15 +20,9 @@ import "../fileDialog"
|
|||
Item {
|
||||
// Set from OffscreenUi::assetDialog()
|
||||
property alias dir: assetTableModel.folder
|
||||
property alias filter: selectionType.filtersString // FIXME: Currently only supports simple filters, "*.xxx".
|
||||
property int options // Not used.
|
||||
property alias filter: selectionType.filtersString
|
||||
|
||||
property bool selectDirectory: false
|
||||
|
||||
// Not implemented.
|
||||
//property bool saveDialog: false;
|
||||
//property bool multiSelect: false;
|
||||
|
||||
property bool singleClickNavigate: false
|
||||
|
||||
HifiConstants { id: hifi }
|
||||
|
@ -85,7 +79,6 @@ Item {
|
|||
size: 28
|
||||
width: height
|
||||
enabled: destination !== ""
|
||||
//onClicked: d.navigateHome();
|
||||
onClicked: assetTableModel.folder = destination;
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +221,9 @@ Item {
|
|||
|
||||
function onGetAllMappings(error, map) {
|
||||
var mappings,
|
||||
fileTypeFilter,
|
||||
fileTypeFilters = [],
|
||||
filterListStart,
|
||||
filterListEnd,
|
||||
index,
|
||||
path,
|
||||
fileName,
|
||||
|
@ -249,7 +244,16 @@ Item {
|
|||
|
||||
if (error === "") {
|
||||
mappings = Object.keys(map);
|
||||
fileTypeFilter = filter.replace("*", "").toLowerCase();
|
||||
filter = filter.replace(/\s/g, '');
|
||||
filterListStart = filter.indexOf("(");
|
||||
filterListEnd = filter.indexOf(")");
|
||||
if (filterListStart !== -1 && filterListEnd !== -1) {
|
||||
var FIRST_EXTENSION_OFFSET = 2;
|
||||
fileTypeFilters = filter.substring(filterListStart + FIRST_EXTENSION_OFFSET
|
||||
, filterListEnd).toLowerCase().split("*");
|
||||
} else if (filter !== "") {
|
||||
fileTypeFilters[0] = filter.replace("*", "").toLowerCase();
|
||||
}
|
||||
|
||||
for (i = 0, length = mappings.length; i < length; i++) {
|
||||
index = mappings[i].lastIndexOf("/");
|
||||
|
@ -260,7 +264,24 @@ Item {
|
|||
fileIsDir = false;
|
||||
isValid = false;
|
||||
|
||||
if (fileType.toLowerCase() === fileTypeFilter) {
|
||||
if (fileTypeFilters.length > 1) {
|
||||
if (fileTypeFilters.indexOf(fileType.toLowerCase()) !== -1) {
|
||||
if (path === folder) {
|
||||
isValid = !selectDirectory;
|
||||
} else if (path.length > folder.length) {
|
||||
subDirectory = path.slice(folder.length);
|
||||
index = subDirectory.indexOf("/");
|
||||
if (index === subDirectory.lastIndexOf("/")) {
|
||||
fileName = subDirectory.slice(0, index);
|
||||
if (subDirectories.indexOf(fileName) === -1) {
|
||||
fileIsDir = true;
|
||||
isValid = true;
|
||||
subDirectories.push(fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (fileType.toLowerCase() === fileTypeFilters[0] || fileTypeFilters.length === 0) {
|
||||
if (path === folder) {
|
||||
isValid = !selectDirectory;
|
||||
} else if (path.length > folder.length) {
|
||||
|
|
Loading…
Reference in a new issue