| Index: chrome/browser/views/options/cookies_view.cc
|
| ===================================================================
|
| --- chrome/browser/views/options/cookies_view.cc (revision 36552)
|
| +++ chrome/browser/views/options/cookies_view.cc (working copy)
|
| @@ -31,7 +31,6 @@
|
| static const int kCookieInfoViewInsetSize = 3;
|
| static const int kSearchFilterDelayMs = 500;
|
|
|
| -
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // CookiesTreeView
|
| // Overridden to handle Delete key presses
|
| @@ -49,20 +48,19 @@
|
| };
|
|
|
| CookiesTreeView::CookiesTreeView(CookiesTreeModel* cookies_model) {
|
| - SetModel(cookies_model);
|
| - SetRootShown(false);
|
| - SetEditable(false);
|
| + SetModel(cookies_model);
|
| + SetRootShown(false);
|
| + SetEditable(false);
|
| }
|
|
|
| void CookiesTreeView::RemoveSelectedItems() {
|
| TreeModelNode* selected_node = GetSelectedNode();
|
| if (selected_node) {
|
| static_cast<CookiesTreeModel*>(model())->DeleteCookieNode(
|
| - static_cast<CookieTreeCookieNode*>(GetSelectedNode()));
|
| + static_cast<CookieTreeNode*>(GetSelectedNode()));
|
| }
|
| }
|
|
|
| -
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // CookieInfoView, public:
|
|
|
| @@ -253,6 +251,123 @@
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| +// LocalStorageInfoView, public:
|
| +
|
| +LocalStorageInfoView::LocalStorageInfoView()
|
| + : origin_label_(NULL),
|
| + origin_value_field_(NULL),
|
| + size_label_(NULL),
|
| + size_value_field_(NULL),
|
| + last_modified_label_(NULL),
|
| + last_modified_value_field_(NULL) {
|
| +}
|
| +
|
| +LocalStorageInfoView::~LocalStorageInfoView() {
|
| +}
|
| +
|
| +void LocalStorageInfoView::SetLocalStorageInfo(
|
| + const BrowsingDataLocalStorageHelper::LocalStorageInfo&
|
| + local_storage_info) {
|
| + origin_value_field_->SetText(UTF8ToWide(local_storage_info.origin));
|
| + size_value_field_->SetText(
|
| + FormatBytes(local_storage_info.size,
|
| + GetByteDisplayUnits(local_storage_info.size),
|
| + true));
|
| + last_modified_value_field_->SetText(
|
| + base::TimeFormatFriendlyDateAndTime(local_storage_info.last_modified));
|
| + EnableLocalStorageDisplay(true);
|
| +}
|
| +
|
| +void LocalStorageInfoView::EnableLocalStorageDisplay(bool enabled) {
|
| + origin_value_field_->SetEnabled(enabled);
|
| + size_value_field_->SetEnabled(enabled);
|
| + last_modified_value_field_->SetEnabled(enabled);
|
| +}
|
| +
|
| +void LocalStorageInfoView::ClearLocalStorageDisplay() {
|
| + std::wstring no_cookie_string =
|
| + l10n_util::GetString(IDS_COOKIES_COOKIE_NONESELECTED);
|
| + origin_value_field_->SetText(no_cookie_string);
|
| + size_value_field_->SetText(no_cookie_string);
|
| + last_modified_value_field_->SetText(no_cookie_string);
|
| + EnableLocalStorageDisplay(false);
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// LocalStorageInfoView, views::View overrides:
|
| +
|
| +void LocalStorageInfoView::ViewHierarchyChanged(bool is_add,
|
| + views::View* parent,
|
| + views::View* child) {
|
| + if (is_add && child == this)
|
| + Init();
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// LocalStorageInfoView, private:
|
| +
|
| +void LocalStorageInfoView::Init() {
|
| + SkColor border_color = color_utils::GetSysSkColor(COLOR_3DSHADOW);
|
| + views::Border* border = views::Border::CreateSolidBorder(
|
| + kCookieInfoViewBorderSize, border_color);
|
| + set_border(border);
|
| +
|
| + origin_label_ = new views::Label(
|
| + l10n_util::GetString(IDS_COOKIES_LOCAL_STORAGE_ORIGIN_LABEL));
|
| + origin_value_field_ = new views::Textfield;
|
| + size_label_ = new views::Label(
|
| + l10n_util::GetString(IDS_COOKIES_LOCAL_STORAGE_SIZE_ON_DISK_LABEL));
|
| + size_value_field_ = new views::Textfield;
|
| + last_modified_label_ = new views::Label(
|
| + l10n_util::GetString(IDS_COOKIES_LOCAL_STORAGE_LAST_MODIFIED_LABEL));
|
| + last_modified_value_field_ = new views::Textfield;
|
| +
|
| + using views::GridLayout;
|
| + using views::ColumnSet;
|
| +
|
| + GridLayout* layout = new GridLayout(this);
|
| + layout->SetInsets(kCookieInfoViewInsetSize,
|
| + kCookieInfoViewInsetSize,
|
| + kCookieInfoViewInsetSize,
|
| + kCookieInfoViewInsetSize);
|
| + SetLayoutManager(layout);
|
| +
|
| + int three_column_layout_id = 0;
|
| + ColumnSet* column_set = layout->AddColumnSet(three_column_layout_id);
|
| + column_set->AddColumn(GridLayout::TRAILING, GridLayout::CENTER, 0,
|
| + GridLayout::USE_PREF, 0, 0);
|
| + column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
|
| + column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
|
| + GridLayout::USE_PREF, 0, 0);
|
| +
|
| + layout->StartRow(0, three_column_layout_id);
|
| + layout->AddView(origin_label_);
|
| + layout->AddView(origin_value_field_);
|
| + layout->AddPaddingRow(0, kRelatedControlSmallVerticalSpacing);
|
| + layout->StartRow(0, three_column_layout_id);
|
| + layout->AddView(size_label_);
|
| + layout->AddView(size_value_field_);
|
| + layout->AddPaddingRow(0, kRelatedControlSmallVerticalSpacing);
|
| + layout->StartRow(0, three_column_layout_id);
|
| + layout->AddView(last_modified_label_);
|
| + layout->AddView(last_modified_value_field_);
|
| +
|
| + // Color these borderless text areas the same as the containing dialog.
|
| + SkColor text_area_background = color_utils::GetSysSkColor(COLOR_3DFACE);
|
| + // Now that the Textfields are in the view hierarchy, we can initialize them.
|
| + origin_value_field_->SetReadOnly(true);
|
| + origin_value_field_->RemoveBorder();
|
| + origin_value_field_->SetBackgroundColor(text_area_background);
|
| + size_value_field_->SetReadOnly(true);
|
| + size_value_field_->RemoveBorder();
|
| + size_value_field_->SetBackgroundColor(text_area_background);
|
| + last_modified_value_field_->SetReadOnly(true);
|
| + last_modified_value_field_->RemoveBorder();
|
| + last_modified_value_field_->SetBackgroundColor(text_area_background);
|
| +}
|
| +
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| // CookiesView, public:
|
|
|
| // static
|
| @@ -371,10 +486,17 @@
|
| static_cast<CookieTreeNode*>(tree_view->GetSelectedNode())->
|
| GetDetailedInfo();
|
| if (detailed_info.node_type == CookieTreeNode::DetailedInfo::TYPE_COOKIE) {
|
| - info_view_->SetCookie(detailed_info.cookie->first,
|
| - detailed_info.cookie->second);
|
| + UpdateVisibleDetailedInfo(cookie_info_view_);
|
| + cookie_info_view_->SetCookie(detailed_info.cookie->first,
|
| + detailed_info.cookie->second);
|
| + } else if (detailed_info.node_type ==
|
| + CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE) {
|
| + UpdateVisibleDetailedInfo(local_storage_info_view_);
|
| + local_storage_info_view_->SetLocalStorageInfo(
|
| + *detailed_info.local_storage_info);
|
| } else {
|
| - info_view_->ClearCookieDisplay();
|
| + UpdateVisibleDetailedInfo(cookie_info_view_);
|
| + cookie_info_view_->ClearCookieDisplay();
|
| }
|
| }
|
|
|
| @@ -393,7 +515,8 @@
|
| clear_search_button_(NULL),
|
| description_label_(NULL),
|
| cookies_tree_(NULL),
|
| - info_view_(NULL),
|
| + cookie_info_view_(NULL),
|
| + local_storage_info_view_(NULL),
|
| remove_button_(NULL),
|
| remove_all_button_(NULL),
|
| profile_(profile),
|
| @@ -421,7 +544,8 @@
|
| l10n_util::GetString(IDS_COOKIES_INFO_LABEL));
|
| description_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
|
| cookies_tree_model_.reset(new CookiesTreeModel(profile_));
|
| - info_view_ = new CookieInfoView;
|
| + cookie_info_view_ = new CookieInfoView;
|
| + local_storage_info_view_ = new LocalStorageInfoView;
|
| cookies_tree_ = new CookiesTreeView(cookies_tree_model_.get());
|
| remove_button_ = new views::NativeButton(
|
| this, l10n_util::GetString(IDS_COOKIES_REMOVE_LABEL));
|
| @@ -469,14 +593,19 @@
|
|
|
| layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| layout->StartRow(0, single_column_layout_id);
|
| - layout->AddView(info_view_);
|
| + layout->AddView(cookie_info_view_, 1, 2);
|
|
|
| + layout->StartRow(0, single_column_layout_id);
|
| + layout->AddView(local_storage_info_view_);
|
| +
|
| // Add the Remove/Remove All buttons to the ClientView
|
| View* parent = GetParent();
|
| parent->AddChildView(remove_button_);
|
| parent->AddChildView(remove_all_button_);
|
| if (!cookies_tree_model_.get()->GetRoot()->GetChildCount())
|
| UpdateForEmptyState();
|
| + else
|
| + UpdateVisibleDetailedInfo(cookie_info_view_);
|
| }
|
|
|
| void CookiesView::ResetSearchQuery() {
|
| @@ -486,7 +615,15 @@
|
| }
|
|
|
| void CookiesView::UpdateForEmptyState() {
|
| - info_view_->ClearCookieDisplay();
|
| + cookie_info_view_->ClearCookieDisplay();
|
| remove_button_->SetEnabled(false);
|
| remove_all_button_->SetEnabled(false);
|
| + UpdateVisibleDetailedInfo(cookie_info_view_);
|
| }
|
| +
|
| +void CookiesView::UpdateVisibleDetailedInfo(views::View* view) {
|
| + view->SetVisible(true);
|
| + views::View* other = local_storage_info_view_;
|
| + if (view == local_storage_info_view_) other = cookie_info_view_;
|
| + other->SetVisible(false);
|
| +}
|
|
|