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

Unified Diff: chrome/browser/ui/views/chooser_content_view.cc

Issue 2086663003: Change ChooserController ownership model (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed temporary unique ptr at ChooserBubbleUiCocoa Created 4 years, 6 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
Index: chrome/browser/ui/views/chooser_content_view.cc
diff --git a/chrome/browser/ui/views/chooser_content_view.cc b/chrome/browser/ui/views/chooser_content_view.cc
index d540a14143fd3935c83cbab9534742ffa7c49226..dccbe5bb70971310ff3c95a17dfd22bbb953213f 100644
--- a/chrome/browser/ui/views/chooser_content_view.cc
+++ b/chrome/browser/ui/views/chooser_content_view.cc
@@ -26,7 +26,7 @@ class ChooserTableModel : public ui::TableModel,
public ChooserController::Observer {
public:
explicit ChooserTableModel(ChooserController* chooser_controller);
- ~ChooserTableModel() override {}
+ ~ChooserTableModel() override;
// ui::TableModel:
int RowCount() override;
@@ -53,18 +53,17 @@ ChooserTableModel::ChooserTableModel(ChooserController* chooser_controller)
chooser_controller_->set_observer(this);
}
+ChooserTableModel::~ChooserTableModel() {
+ chooser_controller_->set_observer(nullptr);
+}
+
int ChooserTableModel::RowCount() {
- if (!chooser_controller_)
- return 0;
// When there are no devices, the table contains a message saying there
// are no devices, so the number of rows is always at least 1.
return std::max(static_cast<int>(chooser_controller_->NumOptions()), 1);
}
base::string16 ChooserTableModel::GetText(int row, int column_id) {
- if (!chooser_controller_)
- return base::string16();
-
int num_options = static_cast<int>(chooser_controller_->NumOptions());
if (num_options == 0) {
DCHECK_EQ(0, row);
@@ -103,9 +102,6 @@ void ChooserTableModel::OnOptionRemoved(size_t index) {
}
void ChooserTableModel::Update() {
- if (!chooser_controller_)
- return;
-
views::TableView* table_view = static_cast<views::TableView*>(observer_);
if (chooser_controller_->NumOptions() == 0) {
@@ -116,16 +112,13 @@ void ChooserTableModel::Update() {
}
}
-void ChooserTableModel::ChooserControllerDestroying() {
- chooser_controller_ = nullptr;
-}
-
-ChooserContentView::ChooserContentView(views::TableViewObserver* observer,
- ChooserController* chooser_controller)
- : chooser_controller_(chooser_controller), table_view_(nullptr) {
+ChooserContentView::ChooserContentView(
+ views::TableViewObserver* observer,
+ std::unique_ptr<ChooserController> chooser_controller)
+ : chooser_controller_(std::move(chooser_controller)), table_view_(nullptr) {
std::vector<ui::TableColumn> table_columns;
table_columns.push_back(ui::TableColumn());
- chooser_table_model_.reset(new ChooserTableModel(chooser_controller_));
+ chooser_table_model_.reset(new ChooserTableModel(chooser_controller_.get()));
table_view_ = new views::TableView(chooser_table_model_.get(), table_columns,
views::TEXT_ONLY, true);
table_view_->set_select_on_remove(false);
@@ -177,36 +170,21 @@ views::StyledLabel* ChooserContentView::CreateFootnoteView(
}
void ChooserContentView::Accept() {
- if (chooser_controller_) {
- chooser_controller_->Select(table_view_->selection_model().active());
- ChooserControllerDestroying();
- }
+ chooser_controller_->Select(table_view_->selection_model().active());
}
void ChooserContentView::Cancel() {
- if (chooser_controller_) {
- chooser_controller_->Cancel();
- ChooserControllerDestroying();
- }
+ chooser_controller_->Cancel();
}
void ChooserContentView::Close() {
- if (chooser_controller_) {
- chooser_controller_->Close();
- ChooserControllerDestroying();
- }
+ chooser_controller_->Close();
}
-void ChooserContentView::StyledLabelLinkClicked() const {
- if (chooser_controller_)
- chooser_controller_->OpenHelpCenterUrl();
+void ChooserContentView::StyledLabelLinkClicked() {
+ chooser_controller_->OpenHelpCenterUrl();
}
void ChooserContentView::UpdateTableModel() {
chooser_table_model_->Update();
}
-
-void ChooserContentView::ChooserControllerDestroying() {
- chooser_controller_ = nullptr;
- chooser_table_model_->ChooserControllerDestroying();
-}
« no previous file with comments | « chrome/browser/ui/views/chooser_content_view.h ('k') | chrome/browser/ui/views/chooser_content_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698