aObj = subObject(aId);
if (aNode->object() != aObj) {
myChildren.removeAll(aNode);
- aResult.removeAll(aNode);
delete aNode;
isDeleted = true;
}
aToSort |= ((aIndex != -1) && (aId != aIndex));
if (aIndex == -1) {
myChildren.removeAll(aNode);
- aResult.removeAll(aNode);
delete aNode;
aRemoved = true;
}
aToSort |= ((aIndex != -1) && (aId != (aIndex + aNb)));
if (aIndex == -1) {
myChildren.removeAll(aNode);
- aResult.removeAll(aNode);
delete aNode;
aRemoved = true;
continue;
bool aHasFields = myFieldsFolder->childrenCount() > 0;
bool aHasGroups = myGroupsFolder->childrenCount() > 0;
- if (aHasFields && (!myChildren.contains(myFieldsFolder))) {
- myChildren.insert(3, myFieldsFolder);
+ if (aHasFields) {
+ if (!myChildren.contains(myFieldsFolder)) {
+ myChildren.insert(3, myFieldsFolder);
+ }
+ } else if (myChildren.contains(myFieldsFolder)) {
+ myChildren.removeAll(myFieldsFolder);
}
- if (aHasGroups && (!myChildren.contains(myGroupsFolder))) {
- myChildren.insert(aHasFields ? 4 : 3, myGroupsFolder);
+ if (aHasGroups) {
+ if (!myChildren.contains(myGroupsFolder)) {
+ myChildren.insert(aHasFields ? 4 : 3, myGroupsFolder);
+ }
+ } else if (myChildren.contains(myGroupsFolder)) {
+ myChildren.removeAll(myGroupsFolder);
}
// Update features content
if ((aFirst + aId) < aNbOfFeatures) {
if (aNode->object() != aDoc->object(ModelAPI_Feature::group(), aFirst + aId)) {
myChildren.removeAll(aNode);
- aResult.removeAll(aNode);
delete aNode;
aRemoved = true;
continue;