summaryrefslogtreecommitdiffstats
path: root/chrome/views
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/views')
-rw-r--r--chrome/views/tree_model.h3
-rw-r--r--chrome/views/tree_node_model.h7
2 files changed, 8 insertions, 2 deletions
diff --git a/chrome/views/tree_model.h b/chrome/views/tree_model.h
index 3608fbc..70be773 100644
--- a/chrome/views/tree_model.h
+++ b/chrome/views/tree_model.h
@@ -41,9 +41,8 @@ class TreeModelObserver {
// Notification the children of |parent| have been reordered. Note, only
// the direct children of |parent| have been reordered, not descendants.
- // TODO(sky): make this pure virtual after all sites have been updated.
virtual void TreeNodeChildrenReordered(TreeModel* model,
- TreeModelNode* parent) {}
+ TreeModelNode* parent) = 0;
// Notification that the contents of a node has changed.
virtual void TreeNodeChanged(TreeModel* model, TreeModelNode* node) = 0;
diff --git a/chrome/views/tree_node_model.h b/chrome/views/tree_node_model.h
index 52126d6..eb7e290 100644
--- a/chrome/views/tree_node_model.h
+++ b/chrome/views/tree_node_model.h
@@ -92,6 +92,13 @@ class TreeNode : public TreeModelNode {
return node;
}
+ // Removes all the children from this node. This does NOT delete the nodes.
+ void RemoveAll() {
+ for (size_t i = 0; i < children_->size(); ++i)
+ children_[i]->parent_ = NULL;
+ children_->clear();
+ }
+
// Returns the number of children.
int GetChildCount() {
return static_cast<int>(children_->size());