Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Unified Diff: ui/views/examples/tree_view_example.cc

Issue 2379863002: Fix object ownership in ui/base/models. (Closed)
Patch Set: fix Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/examples/tree_view_example.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/examples/tree_view_example.cc
diff --git a/ui/views/examples/tree_view_example.cc b/ui/views/examples/tree_view_example.cc
index 0c31ce5337db6bd5b06fa153c305d0613a9a74ca..14d3dce2ac965de29407e079b0f8ee7b95b2647c 100644
--- a/ui/views/examples/tree_view_example.cc
+++ b/ui/views/examples/tree_view_example.cc
@@ -4,6 +4,7 @@
#include "ui/views/examples/tree_view_example.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/menu/menu_model_adapter.h"
@@ -18,30 +19,27 @@ namespace examples {
TreeViewExample::TreeViewExample()
: ExampleBase("Tree View"),
- tree_view_(NULL),
- model_(new NodeType(ASCIIToUTF16("root"), 1)) {
-}
+ model_(base::MakeUnique<NodeType>(ASCIIToUTF16("root"), 1)) {}
TreeViewExample::~TreeViewExample() {
// Delete the view before the model.
- delete tree_view_;
- tree_view_ = NULL;
+ tree_view_.reset();
}
void TreeViewExample::CreateExampleView(View* container) {
// Add some sample data.
- NodeType* colors_node = new NodeType(ASCIIToUTF16("colors"), 1);
- model_.GetRoot()->Add(colors_node, 0);
- colors_node->Add(new NodeType(ASCIIToUTF16("red"), 1), 0);
- colors_node->Add(new NodeType(ASCIIToUTF16("green"), 1), 1);
- colors_node->Add(new NodeType(ASCIIToUTF16("blue"), 1), 2);
-
- NodeType* sheep_node = new NodeType(ASCIIToUTF16("sheep"), 1);
- model_.GetRoot()->Add(sheep_node, 0);
- sheep_node->Add(new NodeType(ASCIIToUTF16("Sheep 1"), 1), 0);
- sheep_node->Add(new NodeType(ASCIIToUTF16("Sheep 2"), 1), 1);
-
- tree_view_ = new TreeView();
+ NodeType* colors_node = model_.GetRoot()->Add(
+ base::MakeUnique<NodeType>(ASCIIToUTF16("colors"), 1), 0);
+ colors_node->Add(base::MakeUnique<NodeType>(ASCIIToUTF16("red"), 1), 0);
+ colors_node->Add(base::MakeUnique<NodeType>(ASCIIToUTF16("green"), 1), 1);
+ colors_node->Add(base::MakeUnique<NodeType>(ASCIIToUTF16("blue"), 1), 2);
+
+ NodeType* sheep_node = model_.GetRoot()->Add(
+ base::MakeUnique<NodeType>(ASCIIToUTF16("sheep"), 1), 0);
+ sheep_node->Add(base::MakeUnique<NodeType>(ASCIIToUTF16("Sheep 1"), 1), 0);
+ sheep_node->Add(base::MakeUnique<NodeType>(ASCIIToUTF16("Sheep 2"), 1), 1);
+
+ tree_view_ = base::MakeUnique<TreeView>();
tree_view_->set_context_menu_controller(this);
tree_view_->SetRootShown(false);
tree_view_->SetModel(&model_);
@@ -85,8 +83,9 @@ void TreeViewExample::AddNewNode() {
static_cast<NodeType*>(tree_view_->GetSelectedNode());
if (!selected_node)
selected_node = model_.GetRoot();
- NodeType* new_node = new NodeType(selected_node->GetTitle(), 1);
- model_.Add(selected_node, new_node, selected_node->child_count());
+ NodeType* new_node = model_.Add(
+ selected_node, base::MakeUnique<NodeType>(selected_node->GetTitle(), 1),
+ selected_node->child_count());
tree_view_->SetSelectedNode(new_node);
}
« no previous file with comments | « ui/views/examples/tree_view_example.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698