Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js

Issue 2744883003: DevTools: generalize setting UI for enum/select settings (Closed)
Patch Set: ac Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
index 0b949eae474a60c298b91897e4297c5c7dffd46d..098edceb612134dd39948eb338508908e9c5cc47 100644
--- a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
+++ b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
@@ -132,29 +132,6 @@ Settings.SettingsTab = class extends UI.VBox {
block.createChild('div', 'help-section-title').textContent = name;
return block;
}
-
- _createSelectSetting(name, options, setting) {
- var p = createElement('p');
- p.createChild('label').textContent = name;
-
- var select = p.createChild('select', 'chrome-select');
- var settingValue = setting.get();
-
- for (var i = 0; i < options.length; ++i) {
- var option = options[i];
- select.add(new Option(option[0], option[1]));
- if (settingValue === option[1])
- select.selectedIndex = i;
- }
-
- function changeListener(e) {
- // Don't use e.target.value to avoid conversion of the value to string.
- setting.set(options[select.selectedIndex][1]);
- }
-
- select.addEventListener('change', changeListener, false);
- return p;
- }
};
/**
@@ -218,22 +195,19 @@ Settings.GenericSettingsTab = class extends Settings.SettingsTab {
settingControl = UI.SettingsUI.createSettingCheckbox(uiTitle, setting);
break;
case 'enum':
- var descriptorOptions = descriptor['options'];
- var options = new Array(descriptorOptions.length);
- for (var i = 0; i < options.length; ++i) {
- // The "raw" flag indicates text is non-i18n-izable.
- var optionName = descriptorOptions[i]['raw'] ? descriptorOptions[i]['text'] :
- Common.UIString(descriptorOptions[i]['text']);
- options[i] = [optionName, descriptorOptions[i]['value']];
- }
- settingControl = this._createSelectSetting(uiTitle, options, setting);
+ if (Array.isArray(descriptor['options']))
+ settingControl = UI.SettingsUI.createSettingSelect(uiTitle, descriptor['options'], setting);
+ else
+ console.error('Enum setting defined without options');
break;
default:
console.error('Invalid setting type: ' + descriptor['settingType']);
return;
}
- this._nameToSettingElement.set(settingName, settingControl);
- sectionElement.appendChild(/** @type {!Element} */ (settingControl));
+ if (settingControl) {
+ this._nameToSettingElement.set(settingName, settingControl);
+ sectionElement.appendChild(settingControl);
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698