private void SaveSettings() { var path = m_saveSettingsFileBox.Text.Trim(); //if (!string.IsNullOrEmpty(path)) // FwRegistryHelper.FieldWorksRegistryKey.SetValue(kSfmImportSettingsRegistryKeyName, path); if (string.IsNullOrEmpty(path)) return; var mappingsToSave = new List<InterlinearMapping>(m_mappings); // We will save our current mappings and any others from the file we loaded (may be useful if these // settings are later applied to another file). if (m_oldMappings != null) { var currentMarkers = new HashSet<string>(from map in m_mappings select map.Marker); foreach (var mapping in m_oldMappings) { if (!currentMarkers.Contains(mapping.Marker)) mappingsToSave.Add(mapping); } } try { XmlSerializer serializer = new XmlSerializer(mappingsToSave.GetType()); using (var writer = new StreamWriter(path)) { serializer.Serialize(writer, mappingsToSave); writer.Close(); } } catch (IOException ex) { var msg = string.Format(ITextStrings.ksErrorWritingSettings, path, ex.Message); MessageBox.Show(this, msg, ITextStrings.ksError, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } }