diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-12 05:05:37 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-12 05:05:37 +0000 |
commit | 2031cf9d2ebb778b9a2f76aa089a3c96ae91db72 (patch) | |
tree | b1f7a90f01c76af8e8502f189925957d89734fe8 /chrome/browser/views | |
parent | c976938f96f5f9296d25cbc41d8fcea5bce74627 (diff) | |
download | chromium_src-2031cf9d2ebb778b9a2f76aa089a3c96ae91db72.zip chromium_src-2031cf9d2ebb778b9a2f76aa089a3c96ae91db72.tar.gz chromium_src-2031cf9d2ebb778b9a2f76aa089a3c96ae91db72.tar.bz2 |
Moves instant out of labs and into prefs.
BUG=58772
TEST=make sure that there is an entry in prefs for instant. See that
it works.
Review URL: http://codereview.chromium.org/3726002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62250 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views')
-rw-r--r-- | chrome/browser/views/options/general_page_view.cc | 65 | ||||
-rw-r--r-- | chrome/browser/views/options/general_page_view.h | 11 | ||||
-rw-r--r-- | chrome/browser/views/options/options_group_view.cc | 3 | ||||
-rw-r--r-- | chrome/browser/views/options/options_group_view.h | 2 |
4 files changed, 77 insertions, 4 deletions
diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc index 9df25d0..b194f0f 100644 --- a/chrome/browser/views/options/general_page_view.cc +++ b/chrome/browser/views/options/general_page_view.cc @@ -11,8 +11,11 @@ #include "base/string16.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/browser.h" +#include "chrome/browser/browser_window.h" #include "chrome/browser/custom_home_pages_table_model.h" #include "chrome/browser/dom_ui/new_tab_ui.h" +#include "chrome/browser/instant/instant_confirm_dialog.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profile.h" @@ -208,6 +211,8 @@ GeneralPageView::GeneralPageView(Profile* profile) homepage_show_home_button_checkbox_(NULL), default_search_group_(NULL), default_search_manage_engines_button_(NULL), + instant_checkbox_(NULL), + instant_link_(NULL), default_browser_group_(NULL), default_browser_status_label_(NULL), default_browser_use_as_default_button_(NULL), @@ -281,6 +286,16 @@ void GeneralPageView::ButtonPressed( UserMetricsRecordAction(UserMetricsAction("Options_ManageSearchEngines"), NULL); KeywordEditorView::Show(profile()); + } else if (sender == instant_checkbox_) { + if (instant_checkbox_->checked()) { + // Don't toggle immediately, instead let + // ShowInstantConfirmDialogIfNecessary do it. + instant_checkbox_->SetChecked(false); + browser::ShowInstantConfirmDialogIfNecessary( + GetWindow()->GetNativeWindow(), profile()); + } else { + profile()->GetPrefs()->SetBoolean(prefs::kInstantEnabled, false); + } } } @@ -357,6 +372,7 @@ void GeneralPageView::InitControlLayout() { registrar_.Init(profile()->GetPrefs()); registrar_.Add(prefs::kRestoreOnStartup, this); registrar_.Add(prefs::kURLsToRestoreOnStartup, this); + registrar_.Add(prefs::kInstantEnabled, this); new_tab_page_is_home_page_.Init(prefs::kHomePageIsNewTabPage, profile()->GetPrefs(), this); @@ -365,10 +381,10 @@ void GeneralPageView::InitControlLayout() { } void GeneralPageView::NotifyPrefChanged(const std::string* pref_name) { + PrefService* prefs = profile()->GetPrefs(); if (!pref_name || *pref_name == prefs::kRestoreOnStartup || *pref_name == prefs::kURLsToRestoreOnStartup) { - PrefService* prefs = profile()->GetPrefs(); const SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref(prefs); bool radio_buttons_enabled = !SessionStartupPref::TypeIsManaged(prefs); @@ -423,6 +439,9 @@ void GeneralPageView::NotifyPrefChanged(const std::string* pref_name) { homepage_show_home_button_checkbox_->SetEnabled( !show_home_button_.IsManaged()); } + + if (!pref_name || *pref_name == prefs::kInstantEnabled) + instant_checkbox_->SetChecked(prefs->GetBoolean(prefs::kInstantEnabled)); } void GeneralPageView::HighlightGroup(OptionsGroup highlight_group) { @@ -430,6 +449,16 @@ void GeneralPageView::HighlightGroup(OptionsGroup highlight_group) { default_search_group_->SetHighlighted(true); } +void GeneralPageView::LinkActivated(views::Link* source, int event_flags) { + DCHECK(source == instant_link_); + // We open a new browser window so the Options dialog doesn't get lost behind + // other windows. + Browser* browser = Browser::Create(profile()); + browser->OpenURL(GURL(browser::kInstantLearnMoreURL), + GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK); + browser->window()->Show(); +} + /////////////////////////////////////////////////////////////////////////////// // GeneralPageView, private: @@ -627,6 +656,15 @@ void GeneralPageView::InitDefaultSearchGroup() { this, l10n_util::GetString(IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES_LINK)); + instant_checkbox_ = new views::Checkbox( + l10n_util::GetString(IDS_INSTANT_PREF)); + instant_checkbox_->SetMultiLine(true); + instant_checkbox_->set_listener(this); + + instant_link_ = new views::Link(l10n_util::GetString(IDS_LEARN_MORE)); + instant_link_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); + instant_link_->SetController(this); + using views::GridLayout; using views::ColumnSet; @@ -642,9 +680,34 @@ void GeneralPageView::InitDefaultSearchGroup() { column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, GridLayout::USE_PREF, 0, 0); + const int single_column_view_set_id = 1; + column_set = layout->AddColumnSet(single_column_view_set_id); + column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1, + GridLayout::USE_PREF, 0, 0); + + const int link_column_set_id = 2; + column_set = layout->AddColumnSet(link_column_set_id); + // TODO(sky): this isn't right, we need a method to determine real indent. + column_set->AddPaddingColumn(0, views::Checkbox::GetTextIndent() + 3); + column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, + GridLayout::USE_PREF, 0, 0); + column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); + column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, + GridLayout::USE_PREF, 0, 0); + layout->StartRow(0, double_column_view_set_id); layout->AddView(default_search_engine_combobox_); layout->AddView(default_search_manage_engines_button_); + layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); + + layout->StartRow(0, single_column_view_set_id); + layout->AddView(instant_checkbox_); + layout->AddPaddingRow(0, 0); + + layout->StartRow(0, link_column_set_id); + layout->AddView( + new views::Label(l10n_util::GetString(IDS_INSTANT_PREF_WARNING))); + layout->AddView(instant_link_); default_search_group_ = new OptionsGroupView( contents, l10n_util::GetString(IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME), diff --git a/chrome/browser/views/options/general_page_view.h b/chrome/browser/views/options/general_page_view.h index f2b126f..a663c82 100644 --- a/chrome/browser/views/options/general_page_view.h +++ b/chrome/browser/views/options/general_page_view.h @@ -13,6 +13,7 @@ #include "chrome/browser/views/url_picker.h" #include "views/controls/combobox/combobox.h" #include "views/controls/button/button.h" +#include "views/controls/link.h" #include "views/controls/table/table_view_observer.h" #include "views/view.h" @@ -39,7 +40,8 @@ class GeneralPageView : public OptionsPageView, public views::Textfield::Controller, public UrlPickerDelegate, public views::TableViewObserver, - public ShellIntegration::DefaultBrowserObserver { + public ShellIntegration::DefaultBrowserObserver, + public views::LinkController { public: explicit GeneralPageView(Profile* profile); virtual ~GeneralPageView(); @@ -64,6 +66,9 @@ class GeneralPageView : public OptionsPageView, virtual void NotifyPrefChanged(const std::string* pref_name); virtual void HighlightGroup(OptionsGroup highlight_group); + // LinkController implementation: + virtual void LinkActivated(views::Link* source, int event_flags); + private: // ShellIntegration::DefaultBrowserObserver implementation: // Updates the UI state to reflect the current default browser state. @@ -143,11 +148,13 @@ class GeneralPageView : public OptionsPageView, StringPrefMember homepage_; BooleanPrefMember show_home_button_; - // Controls for the Default Search group + // Controls for the Search group OptionsGroupView* default_search_group_; views::Combobox* default_search_engine_combobox_; views::NativeButton* default_search_manage_engines_button_; scoped_ptr<SearchEngineListModel> default_search_engines_model_; + views::Checkbox* instant_checkbox_; + views::Link* instant_link_; // Controls for the Default Browser group OptionsGroupView* default_browser_group_; diff --git a/chrome/browser/views/options/options_group_view.cc b/chrome/browser/views/options/options_group_view.cc index 14131b7..ef3e5dd 100644 --- a/chrome/browser/views/options/options_group_view.cc +++ b/chrome/browser/views/options/options_group_view.cc @@ -53,6 +53,9 @@ OptionsGroupView::OptionsGroupView(views::View* contents, contents->SetAccessibleName(title); } +OptionsGroupView::~OptionsGroupView() { +} + void OptionsGroupView::SetHighlighted(bool highlighted) { highlighted_ = highlighted; SchedulePaint(); diff --git a/chrome/browser/views/options/options_group_view.h b/chrome/browser/views/options/options_group_view.h index 69b4efa..b79a36e 100644 --- a/chrome/browser/views/options/options_group_view.h +++ b/chrome/browser/views/options/options_group_view.h @@ -25,7 +25,7 @@ class OptionsGroupView : public views::View { const std::wstring& title, const std::wstring& description, bool show_separator); - virtual ~OptionsGroupView() {} + virtual ~OptionsGroupView(); // Sets the group as being highlighted to attract attention. void SetHighlighted(bool highlighted); |