comparison ios/dw.m @ 2766:9b9bc2c2bbad

iOS: Skip displaying the root node, it just represents the tree itself. Also correctly add nodes to the root node.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 08 Apr 2022 16:33:38 +0000
parents f734185664cc
children de144e0fbdf1
comparison
equal deleted inserted replaced
2765:f734185664cc 2766:9b9bc2c2bbad
2707 return nil; 2707 return nil;
2708 } 2708 }
2709 -(NSArray<DWTreeItem *> *)visibleNodes 2709 -(NSArray<DWTreeItem *> *)visibleNodes
2710 { 2710 {
2711 NSMutableArray *allElements = [[NSMutableArray alloc] init]; 2711 NSMutableArray *allElements = [[NSMutableArray alloc] init];
2712 [allElements addObject:self]; 2712 if(![self isRoot])
2713 [allElements addObject:self];
2713 if(_expanded) 2714 if(_expanded)
2714 { 2715 {
2715 for (DWTreeItem *child in _children) 2716 for (DWTreeItem *child in _children)
2716 [allElements addObjectsFromArray:[child visibleNodes]]; 2717 [allElements addObjectsFromArray:[child visibleNodes]];
2717 } 2718 }
2931 // Finally put it on the root level 2932 // Finally put it on the root level
2932 if(targetNode == nil) 2933 if(targetNode == nil)
2933 targetNode = _rootNode; 2934 targetNode = _rootNode;
2934 // If target is still nil something went horrible wrong 2935 // If target is still nil something went horrible wrong
2935 NSAssert(targetNode, @"targetNode == nil, something went wrong!"); 2936 NSAssert(targetNode, @"targetNode == nil, something went wrong!");
2936 [targetNode insertChildAfter:treeItem]; 2937 if(targetNode.isRoot)
2938 [targetNode appendChild:treeItem];
2939 else
2940 [targetNode insertChildAfter:treeItem];
2937 2941
2938 if([_treeViewDelegate respondsToSelector:@selector(treeView:addTreeItem:)]) 2942 if([_treeViewDelegate respondsToSelector:@selector(treeView:addTreeItem:)])
2939 [_treeViewDelegate treeView:self addTreeItem:treeItem]; 2943 [_treeViewDelegate treeView:self addTreeItem:treeItem];
2940 2944
2941 [self reloadData]; 2945 [self reloadData];