mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:24:00 +02:00
Remove deleted entities from list without scrolling to top
This commit is contained in:
parent
5de451e8e0
commit
064f4ca204
3 changed files with 26 additions and 6 deletions
|
@ -476,9 +476,7 @@ var toolBar = (function () {
|
|||
|
||||
function checkDeletedEntityAndUpdate(entityID) {
|
||||
// Allow for multiple entity deletes before updating the entities selected.
|
||||
if (selectionManager.selections.indexOf(entityID) !== -1) {
|
||||
entitiesToDelete.push(entityID);
|
||||
}
|
||||
entitiesToDelete.push(entityID);
|
||||
if (deletedEntityTimer !== null) {
|
||||
Script.clearTimeout(deletedEntityTimer);
|
||||
}
|
||||
|
@ -486,8 +484,7 @@ var toolBar = (function () {
|
|||
if (entitiesToDelete.length > 0) {
|
||||
selectionManager.removeEntities(entitiesToDelete);
|
||||
}
|
||||
entityListTool.clearEntityList();
|
||||
entityListTool.sendUpdate();
|
||||
entityListTool.removeEntities(entitiesToDelete, selectionManager.selections);
|
||||
entitiesToDelete = [];
|
||||
deletedEntityTimer = null;
|
||||
}, DELETE_ENTITY_TIMER_TIMEOUT);
|
||||
|
|
|
@ -195,6 +195,18 @@ function loaded() {
|
|||
}
|
||||
}
|
||||
|
||||
function removeEntities(deletedIDs, selectedIDs) {
|
||||
for (i = 0, length = deletedIDs.length; i < length; i++) {
|
||||
delete entities[deletedIDs[i]];
|
||||
entityList.remove("id", deletedIDs[i]);
|
||||
}
|
||||
if (refreshEntityListTimer) {
|
||||
clearTimeout(refreshEntityListTimer);
|
||||
}
|
||||
refreshEntityListTimer = setTimeout(refreshEntityListObject, 50);
|
||||
updateSelectedEntities(selectedIDs);
|
||||
}
|
||||
|
||||
function clearEntities() {
|
||||
entities = {};
|
||||
entityList.clear();
|
||||
|
@ -346,7 +358,7 @@ function loaded() {
|
|||
if (notFound) {
|
||||
refreshEntities();
|
||||
}
|
||||
} else if (data.type == "update" && data.selectedIDs !== undefined) {
|
||||
} else if (data.type === "update" && data.selectedIDs !== undefined) {
|
||||
var newEntities = data.entities;
|
||||
if (newEntities && newEntities.length == 0) {
|
||||
elNoEntitiesMessage.style.display = "block";
|
||||
|
@ -367,6 +379,8 @@ function loaded() {
|
|||
updateSelectedEntities(data.selectedIDs);
|
||||
resize();
|
||||
}
|
||||
} else if (data.type === "removeEntities" && data.deletedIDs !== undefined) {
|
||||
removeEntities(data.deletedIDs, data.selectedIDs);
|
||||
} else if (data.type === "deleted") {
|
||||
for (i = 0, length = data.ids.length; i < length; i++) {
|
||||
delete entities[data.ids[i]];
|
||||
|
|
|
@ -57,6 +57,15 @@ EntityListTool = function(opts) {
|
|||
webView.emitScriptEvent(JSON.stringify(data));
|
||||
};
|
||||
|
||||
that.removeEntities = function (deletedIDs, selectedIDs) {
|
||||
var data = {
|
||||
type: 'removeEntities',
|
||||
deletedIDs: deletedIDs,
|
||||
selectedIDs: selectedIDs
|
||||
};
|
||||
webView.emitScriptEvent(JSON.stringify(data));
|
||||
};
|
||||
|
||||
function valueIfDefined(value) {
|
||||
return value !== undefined ? value : "";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue