diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-30 00:44:09 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-30 00:44:09 +0000 |
commit | ffffe93cb3fcff1ddbff35da546981f905d6fdb5 (patch) | |
tree | 69ae85348db8655766227ee4724b216481141e29 /chrome | |
parent | ced110c761f0a07d5dfa6cca07a890b66f0bd689 (diff) | |
download | chromium_src-ffffe93cb3fcff1ddbff35da546981f905d6fdb5.zip chromium_src-ffffe93cb3fcff1ddbff35da546981f905d6fdb5.tar.gz chromium_src-ffffe93cb3fcff1ddbff35da546981f905d6fdb5.tar.bz2 |
AutoFill: Add support for multi-select and delete.
BUG=46075
TEST=see bug
Review URL: http://codereview.chromium.org/2828014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51202 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/views/autofill_profiles_view_win.cc | 22 | ||||
-rw-r--r-- | chrome/browser/views/autofill_profiles_view_win.h | 5 |
2 files changed, 17 insertions, 10 deletions
diff --git a/chrome/browser/views/autofill_profiles_view_win.cc b/chrome/browser/views/autofill_profiles_view_win.cc index f010697..1647753 100644 --- a/chrome/browser/views/autofill_profiles_view_win.cc +++ b/chrome/browser/views/autofill_profiles_view_win.cc @@ -162,9 +162,17 @@ void AutoFillProfilesView::EditClicked() { void AutoFillProfilesView::DeleteClicked() { DCHECK(scroll_view_); DCHECK(table_model_.get()); - int selected_item_index = scroll_view_->FirstSelectedRow(); - DCHECK(selected_item_index >= 0); - table_model_->RemoveItem(selected_item_index); + DCHECK_GT(scroll_view_->SelectedRowCount(), 0); + int last_view_row = -1; + for (views::TableView::iterator i = scroll_view_->SelectionBegin(); + i != scroll_view_->SelectionEnd(); ++i) { + last_view_row = scroll_view_->ModelToView(*i); + table_model_->RemoveItem(*i); + } + if (last_view_row >= table_model_->RowCount()) + last_view_row = table_model_->RowCount() - 1; + if (last_view_row >= 0) + scroll_view_->Select(scroll_view_->ViewToModel(last_view_row)); UpdateButtonState(); } @@ -180,9 +188,9 @@ void AutoFillProfilesView::UpdateButtonState() { add_credit_card_button_->SetEnabled(personal_data_manager_->IsDataLoaded() && !child_dialog_opened_); - int selected_item_index = scroll_view_->FirstSelectedRow(); - edit_button_->SetEnabled(selected_item_index >= 0 && !child_dialog_opened_); - remove_button_->SetEnabled(selected_item_index >= 0 && !child_dialog_opened_); + int selected_row_count = scroll_view_->SelectedRowCount(); + edit_button_->SetEnabled(selected_row_count == 1 && !child_dialog_opened_); + remove_button_->SetEnabled(selected_row_count > 0 && !child_dialog_opened_); } void AutoFillProfilesView::ChildWindowOpened() { @@ -382,7 +390,7 @@ void AutoFillProfilesView::Init() { columns.back().sortable = false; scroll_view_ = new views::TableView(table_model_.get(), columns, - views::TEXT_ONLY, true, true, true); + views::TEXT_ONLY, false, true, true); scroll_view_->SetObserver(this); add_address_button_ = new views::NativeButton(this, diff --git a/chrome/browser/views/autofill_profiles_view_win.h b/chrome/browser/views/autofill_profiles_view_win.h index cdeb1bc..20b60b6 100644 --- a/chrome/browser/views/autofill_profiles_view_win.h +++ b/chrome/browser/views/autofill_profiles_view_win.h @@ -193,6 +193,7 @@ class AutoFillProfilesView : public views::View, const string16& new_contents); bool IsValid() const; + protected: // views::View methods: virtual void ViewHierarchyChanged(bool is_add, views::View* parent, @@ -204,6 +205,7 @@ class AutoFillProfilesView : public views::View, // Only stub is needed, it is never called. NOTREACHED(); } + private: void UpdateButtons(); AutoFillProfilesView* autofill_view_; @@ -392,7 +394,6 @@ class AutoFillProfilesView : public views::View, // Find an index of the item in the model, -1 if not present. int GetIndex(const std::wstring& value); - protected: private: std::vector<std::wstring> cb_strings_; @@ -418,8 +419,6 @@ class AutoFillProfilesView : public views::View, void RemoveItem(int index); void UpdateItem(int index); - protected: - // TableModel members: virtual int RowCount(); virtual std::wstring GetText(int row, int column_id); |