/// <summary> /// Loads settings from XML (on import settings) /// </summary> /// <param name="reader"></param> public override void LoadSettingsFromXml(IVsSettingsReader reader) { SettingsObject.Instance.IgnorePropertyChanges = true; SettingsObject.Instance.ReferenceUpdateInterval = ReadIntFromXml(reader, "ReferenceUpdateInterval"); SettingsObject.Instance.BadKeyNamePolicy = (BAD_KEY_NAME_POLICY)ReadIntFromXml(reader, "BadKeyNamePolicy"); SettingsObject.Instance.OptimizeSpecialSequencesInTranslation = ReadBoolFromXml(reader, "OptimizeSpecialSequencesInTranslation"); int count = ReadIntFromXml(reader, "LanguagesCount"); for (int i = 0; i < count; i++) { string pair; int hr = reader.ReadSettingString("Language" + i, out pair); if (hr != VSConstants.S_OK) { reader.ReportError("Language value cannot be read", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError); } string[] arr = pair.Split(':'); SettingsObject.Instance.LanguagePairs.Add(new SettingsObject.LanguagePair() { FromLanguage = arr[0], ToLanguage = arr[1] }); } string s; int r = reader.ReadSettingString("BingAppId", out s); if (r != VSConstants.S_OK) { reader.ReportError("BingAppId value cannot be read", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError); } SettingsObject.Instance.BingAppId = s; if (string.IsNullOrEmpty(SettingsObject.Instance.BingAppId)) { SettingsObject.Instance.BingAppId = null; } SettingsObject.Instance.IgnorePropertyChanges = false; SettingsObject.Instance.NotifySettingsLoaded(); }
/// <summary> /// Reads integer value from XML settings key /// </summary> protected int ReadIntFromXml(IVsSettingsReader reader, string name) { int p; int hr = reader.ReadSettingLong(name, out p); if (hr != VSConstants.S_OK) { reader.ReportError(name + " value cannot be read", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError); } return(p); }