summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/password_manager_exceptions_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/password_manager_exceptions_view.cc')
-rw-r--r--chrome/browser/views/password_manager_exceptions_view.cc250
1 files changed, 0 insertions, 250 deletions
diff --git a/chrome/browser/views/password_manager_exceptions_view.cc b/chrome/browser/views/password_manager_exceptions_view.cc
deleted file mode 100644
index ae87998..0000000
--- a/chrome/browser/views/password_manager_exceptions_view.cc
+++ /dev/null
@@ -1,250 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/views/password_manager_exceptions_view.h"
-
-#include "base/string_util.h"
-#include "chrome/common/l10n_util.h"
-#include "chrome/browser/profile.h"
-#include "chrome/browser/views/standard_layout.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/common/pref_service.h"
-#include "chrome/views/background.h"
-#include "chrome/views/controls/button/native_button.h"
-#include "chrome/views/grid_layout.h"
-#include "grit/generated_resources.h"
-
-using views::ColumnSet;
-using views::GridLayout;
-
-// We can only have one PasswordManagerExceptionsView at a time.
-PasswordManagerExceptionsView* PasswordManagerExceptionsView::instance_ = NULL;
-
-static const int kDefaultWindowWidth = 530;
-static const int kDefaultWindowHeight = 240;
-
-////////////////////////////////////////////////////////////////////
-// PasswordManagerExceptionsTableModel
-PasswordManagerExceptionsTableModel::PasswordManagerExceptionsTableModel(
- Profile* profile) : PasswordManagerTableModel(profile) {
-}
-
-PasswordManagerExceptionsTableModel::~PasswordManagerExceptionsTableModel() {
-}
-
-std::wstring PasswordManagerExceptionsTableModel::GetText(int row, int col_id) {
- DCHECK_EQ(col_id, IDS_PASSWORD_MANAGER_VIEW_SITE_COLUMN);
- return PasswordManagerTableModel::GetText(row, col_id);
-}
-
-int PasswordManagerExceptionsTableModel::CompareValues(int row1, int row2,
- int col_id) {
- DCHECK_EQ(col_id, IDS_PASSWORD_MANAGER_VIEW_SITE_COLUMN);
- return PasswordManagerTableModel::CompareValues(row1, row2, col_id);
-}
-
-void PasswordManagerExceptionsTableModel::GetAllExceptionsForProfile() {
- DCHECK(!pending_login_query_);
- pending_login_query_ = web_data_service()->GetAllLogins(this);
-}
-
-void PasswordManagerExceptionsTableModel::OnWebDataServiceRequestDone(
- WebDataService::Handle h,
- const WDTypedResult* result) {
- DCHECK_EQ(pending_login_query_, h);
- pending_login_query_ = NULL;
-
- if (!result)
- return;
-
- DCHECK(result->GetType() == PASSWORD_RESULT);
-
- // Get the result from the database into a useable form.
- const WDResult<std::vector<PasswordForm*> >* r =
- static_cast<const WDResult<std::vector<PasswordForm*> >*>(result);
- std::vector<PasswordForm*> rows = r->GetValue();
- STLDeleteElements<PasswordRows>(&saved_signons_);
- std::wstring languages =
- profile_->GetPrefs()->GetString(prefs::kAcceptLanguages);
- for (size_t i = 0; i < rows.size(); ++i) {
- if (rows[i]->blacklisted_by_user) {
- saved_signons_.push_back(new PasswordRow(
- gfx::SortedDisplayURL(rows[i]->origin, languages), rows[i]));
- }
- }
- if (observer_)
- observer_->OnModelChanged();
- if (row_count_observer_)
- row_count_observer_->OnRowCountChanged(RowCount());
-}
-
-//////////////////////////////////////////////////////////////////////
-// PasswordManagerExceptionsView
-
-// static
-void PasswordManagerExceptionsView::Show(Profile* profile) {
- DCHECK(profile);
- if (!instance_) {
- instance_ = new PasswordManagerExceptionsView(profile);
-
- // manager is owned by the dialog window, so Close() will delete it.
- views::Window::CreateChromeWindow(NULL, gfx::Rect(), instance_);
- }
- if (!instance_->window()->IsVisible()) {
- instance_->window()->Show();
- } else {
- instance_->window()->Activate();
- }
-}
-
-PasswordManagerExceptionsView::PasswordManagerExceptionsView(Profile* profile)
- : remove_button_(this, l10n_util::GetString(
- IDS_PASSWORD_MANAGER_EXCEPTIONS_VIEW_REMOVE_BUTTON)),
- remove_all_button_(this, l10n_util::GetString(
- IDS_PASSWORD_MANAGER_EXCEPTIONS_VIEW_REMOVE_ALL_BUTTON)),
- table_model_(profile) {
- Init();
-}
-
-void PasswordManagerExceptionsView::SetupTable() {
- // Tell the table model we are concern about how many rows it has.
- table_model_.set_row_count_observer(this);
-
- // Creates the different columns for the table.
- // The float resize values are the result of much tinkering.
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn(
- IDS_PASSWORD_MANAGER_VIEW_SITE_COLUMN,
- views::TableColumn::LEFT, -1, 0.55f));
- columns.back().sortable = true;
- table_view_ = new views::TableView(&table_model_, columns, views::TEXT_ONLY,
- true, true, true);
- // Make the table initially sorted by host.
- views::TableView::SortDescriptors sort;
- sort.push_back(views::TableView::SortDescriptor(
- IDS_PASSWORD_MANAGER_VIEW_SITE_COLUMN, true));
- table_view_->SetSortDescriptors(sort);
- table_view_->SetObserver(this);
-}
-
-void PasswordManagerExceptionsView::SetupButtons() {
- // Tell View not to delete class stack allocated views.
-
- remove_button_.SetParentOwned(false);
- remove_button_.SetEnabled(false);
-
- remove_all_button_.SetParentOwned(false);
-}
-
-void PasswordManagerExceptionsView::Init() {
- // Configure the background and view elements (buttons, labels, table).
- SetupButtons();
- SetupTable();
-
- // Do the layout thing.
- const int column_set_id = 0;
- GridLayout* layout = CreatePanelGridLayout(this);
- SetLayoutManager(layout);
-
- // Design the grid.
- ColumnSet* column_set = layout->AddColumnSet(column_set_id);
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
- GridLayout::FIXED, 300, 0);
- column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
- column_set->AddColumn(GridLayout::FILL, GridLayout::LEADING, 0,
- GridLayout::USE_PREF, 0, 0);
-
- // Fill the grid.
- layout->StartRow(0.05f, column_set_id);
- layout->AddView(table_view_);
- layout->AddView(&remove_button_);
-
- // Ask the database for exception data.
- table_model_.GetAllExceptionsForProfile();
-}
-
-PasswordManagerExceptionsView::~PasswordManagerExceptionsView() {
-}
-
-void PasswordManagerExceptionsView::Layout() {
- GetLayoutManager()->Layout(this);
-
- // Manually lay out the Remove All button in the same row as
- // the close button.
- gfx::Rect parent_bounds = GetParent()->GetLocalBounds(false);
- gfx::Size prefsize = remove_all_button_.GetPreferredSize();
- int button_y =
- parent_bounds.bottom() - prefsize.height() - kButtonVEdgeMargin;
- remove_all_button_.SetBounds(kPanelHorizMargin, button_y, prefsize.width(),
- prefsize.height());
-}
-
-gfx::Size PasswordManagerExceptionsView::GetPreferredSize() {
- return gfx::Size(kDefaultWindowWidth, kDefaultWindowHeight);
-}
-
-void PasswordManagerExceptionsView::ViewHierarchyChanged(bool is_add,
- views::View* parent,
- views::View* child) {
- if (child == this) {
- // Add and remove the Remove All button from the ClientView's hierarchy.
- if (is_add) {
- parent->AddChildView(&remove_all_button_);
- } else {
- parent->RemoveChildView(&remove_all_button_);
- }
- }
-}
-
-void PasswordManagerExceptionsView::OnSelectionChanged() {
- bool has_selection = table_view_->SelectedRowCount() > 0;
- remove_button_.SetEnabled(has_selection);
-}
-
-int PasswordManagerExceptionsView::GetDialogButtons() const {
- return DIALOGBUTTON_CANCEL;
-}
-
-std::wstring PasswordManagerExceptionsView::GetWindowTitle() const {
- return l10n_util::GetString(IDS_PASSWORD_MANAGER_EXCEPTIONS_VIEW_TITLE);
-}
-
-void PasswordManagerExceptionsView::ButtonPressed(views::Button* sender) {
- DCHECK(window());
- // Close will result in our destruction.
- if (sender == &remove_all_button_) {
- table_model_.ForgetAndRemoveAllSignons();
- return;
- }
-
- // The following require a selection (and only one, since table is single-
- // select only).
- views::TableSelectionIterator iter = table_view_->SelectionBegin();
- int row = *iter;
- PasswordForm* selected = table_model_.GetPasswordFormAt(row);
- DCHECK(++iter == table_view_->SelectionEnd());
-
- if (sender == &remove_button_) {
- table_model_.ForgetAndRemoveSignon(row);
- } else {
- NOTREACHED() << "Invalid button.";
- }
-}
-
-void PasswordManagerExceptionsView::WindowClosing() {
- // The table model will be deleted before the table view, so detach it.
- table_view_->SetModel(NULL);
-
- // Clear the static instance so the next time Show() is called, a new
- // instance is created.
- instance_ = NULL;
-}
-
-views::View* PasswordManagerExceptionsView::GetContentsView() {
- return this;
-}
-
-void PasswordManagerExceptionsView::OnRowCountChanged(size_t rows) {
- remove_all_button_.SetEnabled(rows > 0);
-}