diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-27 14:51:21 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-27 14:51:21 +0000 |
commit | 96d3fb5954088dc929dcedfd82c5b6a05e0e3116 (patch) | |
tree | 76ed5f9f30336f17016d26856b85c55443664820 /chrome/browser/views/options | |
parent | 4079724701312d23a68a148158c8024f0433fbd8 (diff) | |
download | chromium_src-96d3fb5954088dc929dcedfd82c5b6a05e0e3116.zip chromium_src-96d3fb5954088dc929dcedfd82c5b6a05e0e3116.tar.gz chromium_src-96d3fb5954088dc929dcedfd82c5b6a05e0e3116.tar.bz2 |
DevTools: Add 'Enable Developer Tools' option into the Advanced tab. Hide developer tools by default.
Review URL: http://codereview.chromium.org/117003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16984 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/options')
-rw-r--r-- | chrome/browser/views/options/advanced_contents_view.cc | 81 |
1 files changed, 76 insertions, 5 deletions
diff --git a/chrome/browser/views/options/advanced_contents_view.cc b/chrome/browser/views/options/advanced_contents_view.cc index 7d69b1e..1b6a0ef 100644 --- a/chrome/browser/views/options/advanced_contents_view.cc +++ b/chrome/browser/views/options/advanced_contents_view.cc @@ -73,7 +73,6 @@ class ListBackground : public views::Background { DISALLOW_COPY_AND_ASSIGN(ListBackground); }; -} // namespace //////////////////////////////////////////////////////////////////////////////// // AdvancedSection // A convenience view for grouping advanced options together into related @@ -942,8 +941,6 @@ void SecuritySection::NotifyPrefChanged(const std::wstring* pref_name) { //////////////////////////////////////////////////////////////////////////////// // NetworkSection -namespace { - // A helper method that opens the Internet Options control panel dialog with // the Connections tab selected. class OpenConnectionDialogTask : public Task { @@ -978,8 +975,6 @@ class OpenConnectionDialogTask : public Task { DISALLOW_COPY_AND_ASSIGN(OpenConnectionDialogTask); }; -} // namespace - class NetworkSection : public AdvancedSection, public views::ButtonListener { public: @@ -1049,6 +1044,80 @@ void NetworkSection::NotifyPrefChanged(const std::wstring* pref_name) { } //////////////////////////////////////////////////////////////////////////////// +// DevToolsSection + +class DevToolsSection : public AdvancedSection, + public views::ButtonListener { + public: + explicit DevToolsSection(Profile* profile); + virtual ~DevToolsSection() {} + + // Overridden from views::ButtonListener: + virtual void ButtonPressed(views::Button* sender); + + protected: + // OptionsPageView overrides: + virtual void InitControlLayout(); + virtual void NotifyPrefChanged(const std::wstring* pref_name); + + private: + // Controls for this section: + views::Checkbox* enable_devtools_checkbox_; + + // Preferences for this section: + BooleanPrefMember enable_devtools_; + + DISALLOW_COPY_AND_ASSIGN(DevToolsSection); +}; + +DevToolsSection::DevToolsSection(Profile* profile) + : enable_devtools_checkbox_(NULL), + AdvancedSection(profile, + l10n_util::GetString(IDS_OPTIONS_ADVANCED_SECTION_TITLE_DEVTOOLS)) { +} + +void DevToolsSection::ButtonPressed(views::Button* sender) { + if (sender == enable_devtools_checkbox_) { + bool enabled = enable_devtools_checkbox_->checked(); + UserMetricsRecordAction(enabled ? + L"Options_DevToolsCheckbox_Enable" : + L"Options_DevToolsCheckbox_Disable", + profile()->GetPrefs()); + enable_devtools_.SetValue(enabled); + } +} + +void DevToolsSection::InitControlLayout() { + AdvancedSection::InitControlLayout(); + + enable_devtools_checkbox_ = new views::Checkbox( + l10n_util::GetString(IDS_OPTIONS_ENABLE_DEVTOOLS)); + enable_devtools_checkbox_->set_listener(this); + + GridLayout* layout = new GridLayout(contents_); + contents_->SetLayoutManager(layout); + + const int single_column_view_set_id = 0; + AddWrappingColumnSet(layout, single_column_view_set_id); + + AddWrappingCheckboxRow(layout, enable_devtools_checkbox_, + single_column_view_set_id, false); + + // Init member prefs so we can update the controls if prefs change. + enable_devtools_.Init(prefs::kWebKitDeveloperExtrasEnabled, + profile()->GetPrefs(), this); +} + +void DevToolsSection::NotifyPrefChanged(const std::wstring* pref_name) { + if (!pref_name || *pref_name == prefs::kWebKitDeveloperExtrasEnabled) { + enable_devtools_checkbox_->SetChecked( + enable_devtools_.GetValue()); + } +} + +} // namespace + +//////////////////////////////////////////////////////////////////////////////// // AdvancedContentsView class AdvancedContentsView : public OptionsPageView { @@ -1141,6 +1210,8 @@ void AdvancedContentsView::InitControlLayout() { layout->AddView(new WebContentSection(profile())); layout->StartRow(0, single_column_view_set_id); layout->AddView(new SecuritySection(profile())); + layout->StartRow(0, single_column_view_set_id); + layout->AddView(new DevToolsSection(profile())); } //////////////////////////////////////////////////////////////////////////////// |