| Index: chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
|
| diff --git a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
|
| index df017a94c75d257cad86e3a8c836f7712232a9bd..a0d560147fd183247fc087493766d31a6653acad 100644
|
| --- a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
|
| +++ b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
|
| @@ -31,20 +31,20 @@
|
| #include "views/layout/layout_constants.h"
|
| #include "views/widget/widget.h"
|
|
|
| -using views::Button;
|
| -using views::ColumnSet;
|
| using views::GridLayout;
|
| -using views::Label;
|
| -using views::Textfield;
|
| +
|
| +namespace {
|
|
|
| // Background color of text field when URL is invalid.
|
| -static const SkColor kErrorColor = SkColorSetRGB(0xFF, 0xBC, 0xBC);
|
| +const SkColor kErrorColor = SkColorSetRGB(0xFF, 0xBC, 0xBC);
|
|
|
| // Preferred width of the tree.
|
| -static const int kTreeWidth = 300;
|
| +const int kTreeWidth = 300;
|
|
|
| // ID for various children.
|
| -static const int kNewFolderButtonID = 1002;
|
| +const int kNewFolderButtonID = 1002;
|
| +
|
| +} // namespace
|
|
|
| // static
|
| void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd,
|
| @@ -67,6 +67,7 @@ BookmarkEditorView::BookmarkEditorView(
|
| tree_view_(NULL),
|
| new_folder_button_(NULL),
|
| url_label_(NULL),
|
| + url_tf_(NULL),
|
| title_label_(NULL),
|
| parent_(parent),
|
| details_(details),
|
| @@ -110,9 +111,11 @@ std::wstring BookmarkEditorView::GetWindowTitle() const {
|
|
|
| bool BookmarkEditorView::Accept() {
|
| if (!IsDialogButtonEnabled(MessageBoxFlags::DIALOGBUTTON_OK)) {
|
| - // The url is invalid, focus the url field.
|
| - url_tf_.SelectAll();
|
| - url_tf_.RequestFocus();
|
| + if (details_.type != EditDetails::NEW_FOLDER) {
|
| + // The url is invalid, focus the url field.
|
| + url_tf_->SelectAll();
|
| + url_tf_->RequestFocus();
|
| + }
|
| return false;
|
| }
|
| // Otherwise save changes and close the dialog box.
|
| @@ -179,13 +182,13 @@ bool BookmarkEditorView::CanEdit(views::TreeView* tree_view,
|
| return (bb_node->parent() && bb_node->parent()->parent());
|
| }
|
|
|
| -void BookmarkEditorView::ContentsChanged(Textfield* sender,
|
| +void BookmarkEditorView::ContentsChanged(views::Textfield* sender,
|
| const std::wstring& new_contents) {
|
| UserInputChanged();
|
| }
|
|
|
| -void BookmarkEditorView::ButtonPressed(
|
| - Button* sender, const views::Event& event) {
|
| +void BookmarkEditorView::ButtonPressed(views::Button* sender,
|
| + const views::Event& event) {
|
| DCHECK(sender);
|
| switch (sender->id()) {
|
| case kNewFolderButtonID:
|
| @@ -288,7 +291,6 @@ void BookmarkEditorView::Init() {
|
| DCHECK(bb_model_);
|
| bb_model_->AddObserver(this);
|
|
|
| - url_tf_.set_parent_owned(false);
|
| title_tf_.set_parent_owned(false);
|
|
|
| std::wstring title;
|
| @@ -312,25 +314,6 @@ void BookmarkEditorView::Init() {
|
| UTF16ToWide(l10n_util::GetStringUTF16(IDS_BOOMARK_EDITOR_NAME_LABEL)));
|
| title_tf_.SetAccessibleName(WideToUTF16Hack(title_label_->GetText()));
|
|
|
| - string16 url_text;
|
| - if (details_.type != EditDetails::NEW_FOLDER) {
|
| - std::string languages = profile_
|
| - ? profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)
|
| - : std::string();
|
| - // Because this gets parsed by FixupURL(), it's safe to omit the scheme or
|
| - // trailing slash, and unescape most characters, but we need to not drop any
|
| - // username/password, or unescape anything that changes the meaning.
|
| - url_text = net::FormatUrl(url, languages,
|
| - net::kFormatUrlOmitAll & ~net::kFormatUrlOmitUsernamePassword,
|
| - UnescapeRule::SPACES, NULL, NULL, NULL);
|
| - }
|
| - url_tf_.SetText(UTF16ToWide(url_text));
|
| - url_tf_.SetController(this);
|
| -
|
| - url_label_ = new views::Label(
|
| - UTF16ToWide(l10n_util::GetStringUTF16(IDS_BOOMARK_EDITOR_URL_LABEL)));
|
| - url_tf_.SetAccessibleName(WideToUTF16Hack(url_label_->GetText()));
|
| -
|
| if (show_tree_) {
|
| tree_view_ = new views::TreeView();
|
| tree_view_->set_lines_at_root(true);
|
| @@ -354,7 +337,7 @@ void BookmarkEditorView::Init() {
|
| const int single_column_view_set_id = 1;
|
| const int buttons_column_set_id = 2;
|
|
|
| - ColumnSet* column_set = layout->AddColumnSet(labels_column_set_id);
|
| + views::ColumnSet* column_set = layout->AddColumnSet(labels_column_set_id);
|
| column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0,
|
| GridLayout::USE_PREF, 0, 0);
|
| column_set->AddPaddingColumn(0, views::kRelatedControlHorizontalSpacing);
|
| @@ -382,11 +365,29 @@ void BookmarkEditorView::Init() {
|
| layout->AddView(&title_tf_);
|
|
|
| if (details_.type != EditDetails::NEW_FOLDER) {
|
| + url_label_ = new views::Label(
|
| + UTF16ToWide(l10n_util::GetStringUTF16(IDS_BOOMARK_EDITOR_URL_LABEL)));
|
| +
|
| + std::string languages =
|
| + profile_ ? profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)
|
| + : std::string();
|
| + // Because this gets parsed by FixupURL(), it's safe to omit the scheme or
|
| + // trailing slash, and unescape most characters, but we need to not drop any
|
| + // username/password, or unescape anything that changes the meaning.
|
| + string16 url_text = net::FormatUrl(url, languages,
|
| + net::kFormatUrlOmitAll & ~net::kFormatUrlOmitUsernamePassword,
|
| + UnescapeRule::SPACES, NULL, NULL, NULL);
|
| +
|
| + url_tf_ = new views::Textfield;
|
| + url_tf_->SetText(UTF16ToWide(url_text));
|
| + url_tf_->SetController(this);
|
| + url_tf_->SetAccessibleName(WideToUTF16Hack(url_label_->GetText()));
|
| +
|
| layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
|
|
|
| layout->StartRow(0, labels_column_set_id);
|
| layout->AddView(url_label_);
|
| - layout->AddView(&url_tf_);
|
| + layout->AddView(url_tf_);
|
| }
|
|
|
| if (show_tree_) {
|
| @@ -458,8 +459,11 @@ void BookmarkEditorView::Reset() {
|
| if (parent())
|
| ExpandAndSelect();
|
| }
|
| +
|
| GURL BookmarkEditorView::GetInputURL() const {
|
| - return URLFixerUpper::FixupURL(UTF16ToUTF8(url_tf_.text()), std::string());
|
| + if (details_.type == EditDetails::NEW_FOLDER)
|
| + return GURL();
|
| + return URLFixerUpper::FixupURL(UTF16ToUTF8(url_tf_->text()), std::string());
|
| }
|
|
|
| std::wstring BookmarkEditorView::GetInputTitle() const {
|
| @@ -467,11 +471,13 @@ std::wstring BookmarkEditorView::GetInputTitle() const {
|
| }
|
|
|
| void BookmarkEditorView::UserInputChanged() {
|
| - const GURL url(GetInputURL());
|
| - if (!url.is_valid())
|
| - url_tf_.SetBackgroundColor(kErrorColor);
|
| - else
|
| - url_tf_.UseDefaultBackgroundColor();
|
| + if (details_.type != EditDetails::NEW_FOLDER) {
|
| + const GURL url(GetInputURL());
|
| + if (!url.is_valid())
|
| + url_tf_->SetBackgroundColor(kErrorColor);
|
| + else
|
| + url_tf_->UseDefaultBackgroundColor();
|
| + }
|
| GetDialogClientView()->UpdateDialogButtons();
|
| }
|
|
|
|
|