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

Unified Diff: chrome/browser/views/options/exception_editor_view.cc

Issue 650011: windows: Show an icon to the right indicating if the host is valid or not.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 10 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 | « chrome/browser/views/options/exception_editor_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/views/options/exception_editor_view.cc
===================================================================
--- chrome/browser/views/options/exception_editor_view.cc (revision 38675)
+++ chrome/browser/views/options/exception_editor_view.cc (working copy)
@@ -5,28 +5,33 @@
#include "chrome/browser/views/options/exception_editor_view.h"
#include "app/l10n_util.h"
+#include "app/resource_bundle.h"
#include "chrome/browser/host_content_settings_map.h"
#include "chrome/browser/views/options/content_exceptions_table_model.h"
#include "googleurl/src/url_canon.h"
#include "googleurl/src/url_parse.h"
+#include "grit/app_resources.h"
#include "grit/generated_resources.h"
#include "net/base/net_util.h"
#include "views/grid_layout.h"
#include "views/controls/label.h"
+#include "views/controls/image_view.h"
#include "views/standard_layout.h"
#include "views/window/window.h"
+namespace {
+
// The settings shown in the combobox if show_ask_ is false;
-static const ContentSetting kNoAskSettings[] = { CONTENT_SETTING_ALLOW,
- CONTENT_SETTING_BLOCK };
+const ContentSetting kNoAskSettings[] = { CONTENT_SETTING_ALLOW,
+ CONTENT_SETTING_BLOCK };
// The settings shown in the combobox if show_ask_ is true;
-static const ContentSetting kAskSettings[] = { CONTENT_SETTING_ALLOW,
- CONTENT_SETTING_ASK,
- CONTENT_SETTING_BLOCK };
+const ContentSetting kAskSettings[] = { CONTENT_SETTING_ALLOW,
+ CONTENT_SETTING_ASK,
+ CONTENT_SETTING_BLOCK };
// Returns true if the host name is valid.
-static bool ValidHost(const std::string& host) {
+bool ValidHost(const std::string& host) {
if (host.empty())
return false;
@@ -34,6 +39,8 @@
return !net::CanonicalizeHost(host, &host_info).empty();
}
+} // namespace
+
int ExceptionEditorView::ActionComboboxModel::GetItemCount() {
return show_ask_ ? arraysize(kAskSettings) : arraysize(kNoAskSettings);
}
@@ -101,15 +108,7 @@
bool ExceptionEditorView::IsDialogButtonEnabled(
MessageBoxFlags::DialogButton button) const {
if (button == MessageBoxFlags::DIALOGBUTTON_OK) {
- std::string new_host = UTF16ToUTF8(host_tf_->text());
- if (is_new()) {
- return ValidHost(new_host) &&
- (model_->IndexOfExceptionByHost(new_host) == -1);
- }
- return !new_host.empty() &&
- (host_ == new_host ||
- (ValidHost(new_host) &&
- model_->IndexOfExceptionByHost(new_host) == -1));
+ return IsHostValid(UTF16ToUTF8(host_tf_->text()));
}
return true;
}
@@ -133,6 +132,7 @@
void ExceptionEditorView::ContentsChanged(views::Textfield* sender,
const std::wstring& new_contents) {
GetDialogClientView()->UpdateDialogButtons();
+ UpdateImageView(host_iv_, IsHostValid(UTF16ToUTF8(host_tf_->text())));
}
bool ExceptionEditorView::HandleKeystroke(
@@ -148,6 +148,10 @@
host_tf_->SetText(UTF8ToUTF16(host_));
host_tf_->SetController(this);
+ host_iv_ = new views::ImageView;
+
+ UpdateImageView(host_iv_, IsHostValid(UTF16ToUTF8(host_tf_->text())));
+
action_cb_ = new views::Combobox(&cb_model_);
if (!is_new())
action_cb_->SetSelectedItem(cb_model_.index_for_setting(setting_));
@@ -170,6 +174,7 @@
layout->StartRow(0, 1);
layout->AddView(CreateLabel(IDS_EXCEPTION_EDITOR_HOST_TITLE));
layout->AddView(host_tf_);
+ layout->AddView(host_iv_);
layout->StartRowWithPadding(0, 1, 0, kRelatedControlVerticalSpacing);
layout->AddView(CreateLabel(IDS_EXCEPTION_EDITOR_ACTION_TITLE));
@@ -181,3 +186,18 @@
label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
return label;
}
+
+bool ExceptionEditorView::IsHostValid(const std::string& host) const {
+ bool is_valid_host = ValidHost(host) &&
+ (model_->IndexOfExceptionByHost(host) == -1);
+
+ return is_new() ? is_valid_host : (!host.empty() &&
+ ((host_ == host) || is_valid_host));
+}
+
+void ExceptionEditorView::UpdateImageView(views::ImageView* image_view,
+ bool is_valid) {
+ return image_view->SetImage(
+ ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ is_valid ? IDR_INPUT_GOOD : IDR_INPUT_ALERT));
+}
« no previous file with comments | « chrome/browser/views/options/exception_editor_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698