private XmlDisc GetDiscFromFolder(string dirPath) { List <XmlTrack> tracks = new List <XmlTrack>(); foreach (string ext in Program.Config.SupportedFileTypes) { Directory.GetFiles(dirPath, string.Format("*.{0}", ext), SearchOption.TopDirectoryOnly).ToList().ForEach(delegate(string fp) { tracks.Add(new XmlTrack(fp)); }); } string dirName = Path.GetFileName(dirPath); Regex r = new Regex(@"\d+"); Match discNumber = r.Match(dirName); XmlDisc tempDisc = new XmlDisc(tracks); if (discNumber.Success) { tempDisc.DiscNumber = uint.Parse(discNumber.Value); } Discs.Add(tempDisc); Tracks.AddRange(tempDisc.Tracks.ToArray()); if (tempDisc.DiscNumber > 0) { tracks.ToList().ForEach(x => x.DiscNumber = tempDisc.DiscNumber); } tracks.ToList().ForEach(x => x.AlbumArtist = tempDisc.AlbumArtist); return(tempDisc); }
private void AddFilesWizard_Load(object sender, EventArgs e) { foreach (string pfd in FilesDirs.ToArray <string>()) { if (Directory.Exists(pfd)) { AddDirToNode(pfd, tvBands.Nodes); } else if (File.Exists(pfd)) { XmlTrack track = new XmlTrack(pfd); Tracks.Add(track); TracksOrphaned.Add(track); } } XmlDisc discOrphaned = new XmlDisc(TracksOrphaned); foreach (XmlTrack track in TracksOrphaned) { TreeNode tnOrphaned = new TreeNode("Orphaned Tracks"); tnOrphaned.Tag = discOrphaned; tvBands.Nodes.Add(tnOrphaned); } if (tvBands.Nodes.Count > 0 && tvBands.Nodes[0].Nodes.Count > 0) { tvBands.SelectedNode = tvBands.Nodes[0].Nodes[0]; } else if (tvBands.Nodes.Count > 0) { tvBands.SelectedNode = tvBands.Nodes[0]; } }
private void tsmiShowInExplorer_Click(object sender, EventArgs e) { if (lbDiscs.SelectedIndex > -1) { XmlDisc disc = lbDiscs.SelectedItem as XmlDisc; Helpers.OpenFolder(disc.Location); } }
private void tsmiSearchInGoogle_Click(object sender, EventArgs e) { if (lbDiscs.SelectedIndex > -1) { XmlDisc disc = lbDiscs.SelectedItem as XmlDisc; URLHelpers.OpenURL(disc.GoogleSearchURL); } }
private void lbDiscs_SelectedIndexChanged(object sender, EventArgs e) { if (lbDiscs.SelectedIndex > -1) { XmlDisc tempDisc = lbDiscs.SelectedItem as XmlDisc; ttApp.SetToolTip(lbDiscs, tempDisc.ToTracklistString()); } }
private void tsmiSearchInGoogle_Click(object sender, EventArgs e) { if (lbDiscs.SelectedIndex > -1) { XmlDisc disc = lbDiscs.SelectedItem as XmlDisc; Helpers.LoadBrowserAsync(disc.GoogleSearchURL); } }
private void btnSave_Click(object sender, EventArgs e) { if (lbTracks.Items.Count > 0) { if (!string.IsNullOrEmpty(cboAlbumArtist.Text)) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.AlbumArtist = cboAlbumArtist.Text); } if (!string.IsNullOrEmpty(txtAlbum.Text)) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.Album = txtAlbum.Text); } if (!string.IsNullOrEmpty(cboGenre.Text)) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.Genre = cboGenre.Text); } if (nudYear.Value > 0) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.Year = (uint)nudYear.Value); } if (nudDiscNumber.Value > 0) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.DiscNumber = (uint)nudDiscNumber.Value); } if (nudDiscCount.Value > 0) { lbTracks.Items.Cast <XmlTrack>().ToList().ForEach(x => x.DiscCount = (uint)nudDiscCount.Value); } if (tvBands.SelectedNode.Tag is XmlDisc) { XmlDisc disc = tvBands.SelectedNode.Tag as XmlDisc; disc.DiscNumber = (uint)nudDiscNumber.Value; disc.DiscCount = (uint)nudDiscCount.Value; disc.Year = (uint)nudYear.Value; } } }
private void tvBands_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode tn = e.Node; if (tn != null && tn.Tag != null) { XmlDisc disc = tn.Tag as XmlDisc; lbTracks.Items.Clear(); lbTracks.Items.AddRange(disc.Tracks.ToArray()); cboAlbumArtist.Text = disc.AlbumArtist; txtAlbum.Text = disc.Album; cboGenre.Text = disc.Genre; nudYear.Value = disc.Year; nudDiscNumber.Value = disc.DiscNumber; nudDiscCount.Value = disc.DiscCount; } }
private XmlDisc GetDiscFromFolder(string dirPath) { List <XmlTrack> tracks = new List <XmlTrack>(); foreach (string ext in Program.Config.SupportedFileTypes) { Directory.GetFiles(dirPath, string.Format("*.{0}", ext), SearchOption.TopDirectoryOnly).ToList().ForEach(delegate(string fp) { tracks.Add(new XmlTrack(fp)); }); } XmlDisc tempDisc = new XmlDisc(tracks); Discs.Add(tempDisc); this.Tracks.AddRange(tempDisc.Tracks.ToArray()); return(tempDisc); }
private void RunTasks() { Program.TreadUI = SynchronizationContext.Current; UserConfig userConfig = SaveUserConfig(); if (UserConfig.IsConfigured(userConfig)) { XmlLibrary selectedLibrary = new XmlLibrary(Program.Config); if (lbDiscs.SelectedItem != null) { if (lbDiscs.SelectedItem is XmlDisc) { XmlDisc disc = lbDiscs.SelectedItem as XmlDisc; selectedLibrary.AddTracks(disc.Tracks); } } else if (tvLibrary.SelectedNode != null) { if (tvLibrary.SelectedNode.Tag is XmlAlbumArtist) { XmlAlbumArtist band = tvLibrary.SelectedNode.Tag as XmlAlbumArtist; selectedLibrary.AddTracks(band.GetTracks()); } else if (tvLibrary.SelectedNode.Tag is XmlAlbum) { XmlAlbum album = tvLibrary.SelectedNode.Tag as XmlAlbum; selectedLibrary.AddTracks(album.GetTracks()); } } else { selectedLibrary = Program.Library; // if nothing is selected then validate entire library } Program.LogViewer.BindWorker(selectedLibrary.Worker); selectedLibrary.RunTasks(); } }