private void notesFileChanged(NotesFileChangeType changeType, NotesFile notesFile) { if (changeType != NotesFileChangeType.Removed) { FileInfo fi = new FileInfo(notesFile.Filename); ListViewItem li = null; if (changeType == NotesFileChangeType.Added) li = lvwFiles.Items.Add(string.Format("{0} ({1})", (lvwFiles.Items.Count + 1).ToString(), fi.Extension.Substring(1))); else //reloaded { foreach (ListViewItem lvi in lvwFiles.Items) { if (((NotesFile)lvi.Tag).Filename.ToLower() == notesFile.Filename.ToLower()) { li = lvi; break; } } } if (li != null) { li.ImageIndex = notesFile == _song.Notes.BaseFile ? 1 : 0; li.ToolTipText = fi.FullName; li.Tag = notesFile; //must be set before selecting. li.Selected = true; } Application.DoEvents(); _song.Notes.SmartMap(notesFile, true); } else { int idx = -1; foreach (ListViewItem li in lvwFiles.Items) { if (li.Tag == notesFile) { idx = li.Index; break; } } if (idx != -1) lvwFiles.Items.RemoveAt(idx); } }
/// <summary> /// Indicates that a notes file has been added or removed /// </summary> /// <param name="notesFile">Notes File</param> /// <param name="addedRemoved">true=Added, false=Removed</param> internal NotesFileChangedEventArgs(NotesFile notesFile, NotesFileChangeType changeType) { this.NotesFile = notesFile; this.ChangeType = changeType; }
protected void OnNotesFileChanged(NotesFile nf, NotesFileChangeType type) { if (NotesFileChanged != null) NotesFileChanged(this, new NotesFileChangedEventArgs(nf, type)); }