void RepopulateInput(InputConfig inputConfigDatabase, bool preserveDisplayNames = false) { MSChartEditorInput.MSChartEditorActionContainer controls = new MSChartEditorInput.MSChartEditorActionContainer(); ShortcutInputConfig[] shortcutInputs = new ShortcutInputConfig[EnumX <MSChartEditorInputActions> .Count]; for (int i = 0; i < shortcutInputs.Length; ++i) { MSChartEditorInputActions scEnum = (MSChartEditorInputActions)i; InputConfig.Properties properties; if (!inputExplicitProperties.TryGetValue(scEnum, out properties)) { properties = kDefaultProperties; } if (string.IsNullOrEmpty(properties.displayName)) { properties.displayName = scEnum.ToString(); } ShortcutInputConfig config = new ShortcutInputConfig(); var defaultConfig = controls.GetActionConfig(scEnum); var defaultProperties = defaultConfig.properties; config.shortcut = scEnum; config.properties = properties; if (preserveDisplayNames && i < inputConfigDatabase.shortcutInputs.Length) { config.properties.displayName = inputConfigDatabase.shortcutInputs[i].properties.displayName; } shortcutInputs[i] = config; } inputConfigDatabase.shortcutInputs = shortcutInputs; }