diff options
Diffstat (limited to 'chrome/browser/views/options/advanced_contents_view.cc')
-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())); } //////////////////////////////////////////////////////////////////////////////// |