/// <summary> /// Lookup for preexisting value if present /// </summary> private void TagsGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e) { var tagNameValue = TagsGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; if (tagNameValue != null && !string.IsNullOrEmpty(tagNameValue.ToString())) { string tmp; mp3File.TryReadValue(tagNameValue.ToString(), ExposedTags.IsPrivateOrUserFrame(tagNameValue.ToString()), out tmp); TagsGrid.Rows[e.RowIndex].Cells["TagValueOld"].Value = tmp; TagsGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = true; addedTags--; if (addedTags == 0) { TagsGrid.CellEndEdit -= TagsGrid_CellEndEdit; } } }
/// <summary> /// Changes will persist to disk after serialization, for now change singleton /// </summary> private void SaveCurrentAsDefaultsButton_Click(object sender, EventArgs e) { exposedTags.Tags.Clear(); foreach (var tag in tags) { var name = tag.tagName; if (ExposedTags.IsPrivateOrUserFrame(name)) { exposedTags.Tags.Add(new ExposedTags.Tag(name, true)); } else { exposedTags.Tags.Add(new ExposedTags.Tag(name)); } } }
/// <summary> /// Figure out what kind of frame it is, then try to write to it /// </summary> /// <param name="name">Name of frame</param> /// <param name="privateOrUserFrame">How to look for the frame</param> /// <param name="value">Value to write</param> /// <returns>True on success, false on failure</returns> private bool TryWriteValue(string name, string value) { if (!ExposedTags.IsPrivateOrUserFrame(name)) { return(TryWritePropertyValue(name, value)); } else { string garbage; if (TryReadUserFrame(name, out garbage)) { return(TryWriteUserFrame(name, value)); } else { return(TryWritePrivateFrame(name, value)); } } }