summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-07 16:35:09 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-07 16:35:09 +0000
commit26b2cb729db14abc7508a66ac55a6f9511507d9c (patch)
treec602e960ca874acb2f8deb6aaf0de35971e5dfa0
parentb1fa70a101d597a97805cef1ec09eeedf2fdeacc (diff)
downloadchromium_src-26b2cb729db14abc7508a66ac55a6f9511507d9c.zip
chromium_src-26b2cb729db14abc7508a66ac55a6f9511507d9c.tar.gz
chromium_src-26b2cb729db14abc7508a66ac55a6f9511507d9c.tar.bz2
ui/base/models: Simplify TreeNode::GetIndexOf() member function.
BUG=None TEST=app_unittests --gtest_filter=TreeNodeModelTest.GetIndexOf R=sky@chromium.org Review URL: http://codereview.chromium.org/7113015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88134 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ui/base/models/tree_node_model.h19
-rw-r--r--ui/base/models/tree_node_model_unittest.cc39
-rw-r--r--views/view.cc2
-rw-r--r--views/view_unittest.cc3
4 files changed, 34 insertions, 29 deletions
diff --git a/ui/base/models/tree_node_model.h b/ui/base/models/tree_node_model.h
index f4b41f8..29443f9 100644
--- a/ui/base/models/tree_node_model.h
+++ b/ui/base/models/tree_node_model.h
@@ -102,6 +102,13 @@ class TreeNode : public TreeModelNode {
children_->clear();
}
+ // Returns the parent node, or NULL if this is the root node.
+ const NodeType* parent() const { return parent_; }
+ NodeType* parent() { return parent_; }
+
+ // Returns true if this is the root node.
+ bool is_root() const { return parent_ == NULL; }
+
// Returns the number of children.
int child_count() const { return static_cast<int>(children_->size()); }
@@ -125,21 +132,13 @@ class TreeNode : public TreeModelNode {
static_cast<const NodeType&>(*this).GetChild(index));
}
- // Returns the parent node, or NULL if this is the root node.
- const NodeType* parent() const { return parent_; }
- NodeType* parent() { return parent_; }
-
- // Returns true if this is the root node.
- bool is_root() const { return parent_ == NULL; }
-
// Returns the index of |node|, or -1 if |node| is not a child of this.
int GetIndexOf(const NodeType* node) const {
DCHECK(node);
typename std::vector<NodeType*>::const_iterator i =
std::find(children_->begin(), children_->end(), node);
- if (i != children_->end())
- return static_cast<int>(i - children_->begin());
- return -1;
+ return
+ i != children_->end() ? static_cast<int>(i - children_->begin()) : -1;
}
// Sets the title of the node.
diff --git a/ui/base/models/tree_node_model_unittest.cc b/ui/base/models/tree_node_model_unittest.cc
index b6097c3..051f9ce 100644
--- a/ui/base/models/tree_node_model_unittest.cc
+++ b/ui/base/models/tree_node_model_unittest.cc
@@ -172,28 +172,31 @@ TEST_F(TreeNodeModelTest, RemoveAllNodes) {
// | |-- foo1
// +-- child2
TEST_F(TreeNodeModelTest, GetIndexOf) {
- TreeNodeWithValue<int>* root =
- new TreeNodeWithValue<int>(ASCIIToUTF16("root"), 0);
- TreeNodeModel<TreeNodeWithValue<int> > model(root);
- model.AddObserver(this);
- ClearCounts();
+ TreeNodeWithValue<int> root;
- TreeNodeWithValue<int>* child1 =
- new TreeNodeWithValue<int>(ASCIIToUTF16("child 1"), 1);
- model.Add(root, child1, 0);
+ TreeNodeWithValue<int>* child1 = new TreeNodeWithValue<int>(1);
+ root.Add(child1, 0);
- TreeNodeWithValue<int>* child2 =
- new TreeNodeWithValue<int>(ASCIIToUTF16("child 2"), 2);
- model.Add(root, child2, 1);
+ TreeNodeWithValue<int>* child2 = new TreeNodeWithValue<int>(2);
+ root.Add(child2, 1);
- TreeNodeWithValue<int>* foo1 =
- new TreeNodeWithValue<int>(ASCIIToUTF16("foo1"), 0);
- model.Add(child1, foo1, 0);
+ TreeNodeWithValue<int>* foo1 = new TreeNodeWithValue<int>(0);
+ child1->Add(foo1, 0);
+
+ ASSERT_EQ(-1, root.GetIndexOf(&root));
+ ASSERT_EQ(0, root.GetIndexOf(child1));
+ ASSERT_EQ(1, root.GetIndexOf(child2));
+ ASSERT_EQ(-1, root.GetIndexOf(foo1));
+
+ ASSERT_EQ(-1, child1->GetIndexOf(&root));
+ ASSERT_EQ(-1, child1->GetIndexOf(child1));
+ ASSERT_EQ(-1, child1->GetIndexOf(child2));
+ ASSERT_EQ(0, child1->GetIndexOf(foo1));
- ASSERT_EQ(0, model.GetIndexOf(root, child1));
- ASSERT_EQ(1, model.GetIndexOf(root, child2));
- ASSERT_EQ(0, model.GetIndexOf(child1, foo1));
- ASSERT_EQ(-1, model.GetIndexOf(root, foo1));
+ ASSERT_EQ(-1, child2->GetIndexOf(&root));
+ ASSERT_EQ(-1, child2->GetIndexOf(child2));
+ ASSERT_EQ(-1, child2->GetIndexOf(child1));
+ ASSERT_EQ(-1, child2->GetIndexOf(foo1));
}
// Verify whether a specified node has or not an ancestor.
diff --git a/views/view.cc b/views/view.cc
index b130be0..c9fabb0 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -212,7 +212,7 @@ bool View::Contains(const View* view) const {
int View::GetIndexOf(const View* view) const {
Views::const_iterator i(std::find(children_.begin(), children_.end(), view));
- return i != children_.end() ? i - children_.begin() : -1;
+ return i != children_.end() ? static_cast<int>(i - children_.begin()) : -1;
}
// TODO(beng): remove
diff --git a/views/view_unittest.cc b/views/view_unittest.cc
index e2ea01b..8924acf 100644
--- a/views/view_unittest.cc
+++ b/views/view_unittest.cc
@@ -2045,16 +2045,19 @@ TEST_F(ViewTest, GetIndexOf) {
View* foo1 = new View();
child1->AddChildView(foo1);
+ ASSERT_EQ(-1, root.GetIndexOf(NULL));
ASSERT_EQ(-1, root.GetIndexOf(&root));
ASSERT_EQ(0, root.GetIndexOf(child1));
ASSERT_EQ(1, root.GetIndexOf(child2));
ASSERT_EQ(-1, root.GetIndexOf(foo1));
+ ASSERT_EQ(-1, child1->GetIndexOf(NULL));
ASSERT_EQ(-1, child1->GetIndexOf(&root));
ASSERT_EQ(-1, child1->GetIndexOf(child1));
ASSERT_EQ(-1, child1->GetIndexOf(child2));
ASSERT_EQ(0, child1->GetIndexOf(foo1));
+ ASSERT_EQ(-1, child2->GetIndexOf(NULL));
ASSERT_EQ(-1, child2->GetIndexOf(&root));
ASSERT_EQ(-1, child2->GetIndexOf(child2));
ASSERT_EQ(-1, child2->GetIndexOf(child1));