Fix #9294.
- Fix incorrect order of operations in ValueNodeManager. - Upon receiving a changed notification, VariableTableModel needs to make tree table aware that the previous nodes have been removed.
This commit is contained in:
@@ -103,11 +103,12 @@ ValueNodeManager::ValueNodeChanged(ValueNodeChild* nodeChild,
|
|||||||
|
|
||||||
AutoLocker<ValueNodeContainer> containerLocker(fContainer);
|
AutoLocker<ValueNodeContainer> containerLocker(fContainer);
|
||||||
|
|
||||||
|
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--)
|
||||||
|
fListeners.ItemAt(i)->ValueNodeChanged(nodeChild, oldNode, newNode);
|
||||||
|
|
||||||
if (oldNode != NULL)
|
if (oldNode != NULL)
|
||||||
newNode->CreateChildren();
|
newNode->CreateChildren();
|
||||||
|
|
||||||
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--)
|
|
||||||
fListeners.ItemAt(i)->ValueNodeChanged(nodeChild, oldNode, newNode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -930,9 +930,11 @@ VariablesView::VariableTableModel::ValueNodeChanged(ValueNodeChild* nodeChild,
|
|||||||
if (modelNode == NULL)
|
if (modelNode == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (oldNode != NULL)
|
if (oldNode != NULL) {
|
||||||
|
ValueNodeChildrenDeleted(oldNode);
|
||||||
NotifyNodeChanged(modelNode);
|
NotifyNodeChanged(modelNode);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user