| Index: third_party/WebKit/Source/devtools/front_end/ui/SettingsUI.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui/SettingsUI.js b/third_party/WebKit/Source/devtools/front_end/ui/SettingsUI.js
|
| index a8aafa6ae7f4d2f20c086261c23d7668b150eddb..1caafef9be72801bc01dea81d6547b8e8ca808ba 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui/SettingsUI.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui/SettingsUI.js
|
| @@ -54,6 +54,48 @@ UI.SettingsUI.createSettingCheckbox = function(name, setting, omitParagraphEleme
|
| };
|
|
|
| /**
|
| + * @param {string} name
|
| + * @param {!Common.Setting} setting
|
| + * @return {!Element}
|
| + */
|
| +UI.SettingsUI.createSettingSelect = function(name, setting) {
|
| + var p = createElement('p');
|
| + p.createChild('label').textContent = name;
|
| + var select = p.createChild('select', 'chrome-select');
|
| + var settingValue = setting.get();
|
| + var options = setting.options();
|
| +
|
| + for (var i = 0; i < options.length; ++i) {
|
| + var option = options[i];
|
| + // The "raw" flag indicates text is non-i18n-izable.
|
| + var optionName = option.raw ? option.text : Common.UIString(option.text);
|
| + select.add(new Option(optionName, option.value));
|
| + if (settingValue === option.value)
|
| + select.selectedIndex = i;
|
| + }
|
| +
|
| + setting.addChangeListener(settingChanged);
|
| + settingChanged();
|
| + select.addEventListener('change', selectChanged, false);
|
| + return p;
|
| +
|
| + function settingChanged() {
|
| + var newValue = setting.get();
|
| + if (options[select.selectedIndex].value !== newValue) {
|
| + for (var i = 0; i < options.length; i++) {
|
| + if (options[i].value === newValue)
|
| + select.selectedIndex = i;
|
| + }
|
| + }
|
| + }
|
| +
|
| + function selectChanged() {
|
| + // Don't use event.target.value to avoid conversion of the value to string.
|
| + setting.set(options[select.selectedIndex].value);
|
| + }
|
| +};
|
| +
|
| +/**
|
| * @param {!Element} input
|
| * @param {!Common.Setting} setting
|
| */
|
|
|