private void DiscogsSearchResults_Load(object sender, EventArgs e) { FormCollection formCollection = Application.OpenForms; List <PictureBox> albumarts = new List <PictureBox>(); var EditingWindowInstance = new EditingWindow(); foreach (Form form in formCollection) { if (form is EditingWindow) { EditingWindowInstance = (EditingWindow)form; } } foreach (Control albumart in Controls) { if (albumart is PictureBox) { albumarts.Add((PictureBox)albumart); } } foreach (PictureBox albumart in albumarts) { albumart.Click += (sender1, e1) => { EditingWindowInstance.DownloaderAlbumArtPath = albumart.ImageLocation; EditingWindowInstance.ActiveControl = EditingWindowInstance.Controls[0]; Close(); }; } }
private void customButton1_Click(object sender, EventArgs e) { if (dataGridView1.RowCount != 0) //Αν έχουν φορτωθεί στοιχεία { var form1 = new EditingWindow(); //Δημιουργία αντικειμένου editingwindow form1.Show(); //Εμφάνιση του αντικειμένου form1.ActiveControl = null; //Το activecontrol είναι κενό ώστε να μην έχει focus κάποιο textbox if (dataGridView1.SelectedRows.Count == 1) { var Song = TagLib.File.Create(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString());// Δημιουργία taglib.file με βάση την διαδρομή που βρίσκεται στην πρώτη στήλη //Εισαγωγή τιμών στο αντικείμενο editingwindow form1.TitleText = Song.Tag.Title; form1.ArtistText = Song.Tag.Performers[0]; form1.AlbumText = Song.Tag.Album; form1.YearText = Song.Tag.Year.ToString(); form1.TrackText = Song.Tag.Track.ToString(); string genretexts = null; for (int i = 0; i < Song.Tag.Genres.Length; i++) { if (i != Song.Tag.Genres.Length - 1) { genretexts = genretexts + Song.Tag.Genres[i] + ","; } else { genretexts = genretexts + Song.Tag.Genres[i]; } } form1.GenreText = genretexts; form1.CommentText = Song.Tag.Comment; form1.Filepath = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString(); if (Song.Tag.Pictures.Length >= 1) { var bin = Song.Tag.Pictures[0].Data.Data; form1.AlbumPicture = Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(1000, 1000, null, IntPtr.Zero); } form1.LyricsText = Song.Tag.Lyrics; if (Song.Tag.AlbumArtists.Length != 0) { form1.AlbumArtist = Song.Tag.AlbumArtists[0]; } form1.BeatsPerMinute = Song.Tag.BeatsPerMinute.ToString(); if (Song.Tag.Composers.Length != 0) { form1.Composers = Song.Tag.Composers[0]; } form1.Conductors = Song.Tag.Conductor; form1.ArtistUrl = Song.Tag.ArtistURL; form1.Copyrights = Song.Tag.Copyright; form1.Description = Song.Tag.Description; form1.Discnumber = Song.Tag.Disc.ToString(); form1.Grouping = Song.Tag.Grouping; form1.Subtitle = Song.Tag.Subtitle; form1.Publisher = Song.Tag.Publisher; form1.Lyricist = Song.Tag.Lyricist; } else { List <string> FilePaths = new List <string>(); //Δημιουργία λίστας για την αποθήκευση των διαδρομών των τραγουδιών foreach (DataGridViewRow dtvrow in dataGridView1.SelectedRows) { FilePaths.Add(dtvrow.Cells[0].Value.ToString()); //Προσθήκη κάθε διαδρομής τραγουδιού που έχει επιλεχθεί σην λίστα } string[] SongPaths = FilePaths.ToArray(); //Δημιουργία string array για την αποθήκευση των διαδρομών form1.FilePaths = SongPaths; //Θέτω την ιδιότητα filepaths του EditingWindow με το SongPaths form1.TitleText = "<Διατήρηση τιμής>"; form1.TrackText = "<Διατήρηση τιμής>"; form1.LyricsText = "<Διατήρηση τιμής>"; form1.BeatsPerMinute = "<Διατήρηση τιμής>"; form1.Discnumber = "<Διατήρηση τιμής>"; form1.CommentText = "<Διατήρηση τιμής>"; List <TagLib.File> songs = new List <TagLib.File>(); //Δημιουργία λίστας για την αποθήκευση των τραγουδιών που έχουν επιλεχθεί με τα tags τους foreach (string path in SongPaths) { songs.Add(TagLib.File.Create(path)); //Προσθήκη των τραγουδιών στη λίστα } var same_album = true; for (int i = 1; i < songs.Count && same_album; i++) { if (songs[i - 1].Tag.Album != songs[i].Tag.Album) { same_album = false; } } if (same_album) { form1.ArtistText = songs[0].Tag.Performers[0]; form1.AlbumText = songs[0].Tag.Album; form1.YearText = songs[0].Tag.Year.ToString(); if (SameGenre(songs)) { string genretexts = null; for (int i = 0; i < songs[0].Tag.Genres.Length; i++) { if (i != songs[0].Tag.Genres.Length - 1) { genretexts = genretexts + songs[0].Tag.Genres[i] + ","; } else { genretexts = genretexts + songs[0].Tag.Genres[i]; } } form1.GenreText = genretexts; } else { form1.GenreText = "<Διατήρηση τιμής>"; } if (SameAlbumArtist(songs)) { string albumartists = null; for (int i = 0; i < songs[0].Tag.AlbumArtists.Length; i++) { if (i != songs[0].Tag.AlbumArtists.Length - 1) { albumartists = albumartists + songs[0].Tag.AlbumArtists[i] + ","; } else { albumartists = albumartists + songs[0].Tag.AlbumArtists[i]; } } form1.AlbumArtist = albumartists; } else { form1.AlbumArtist = "<Διατήρηση τιμής>"; } if (SameComposers(songs)) { string composers = null; for (int i = 0; i < songs[0].Tag.Composers.Length; i++) { if (i != songs[0].Tag.Composers.Length - 1) { composers = composers + songs[0].Tag.Composers[i] + ","; } else { composers = composers + songs[0].Tag.Composers[i]; } } form1.Composers = composers; } else { form1.Composers = "<Διατήρηση τιμής>"; } if (SameConductor(songs)) { form1.Conductors = songs[0].Tag.Conductor; } else { form1.Conductors = "<Διατήρηση τιμής>"; } if (SameArtistURL(songs)) { form1.ArtistUrl = songs[0].Tag.ArtistURL; } else { form1.ArtistUrl = "<Διατήρηση τιμής>"; } if (SameCopyrights(songs)) { form1.Copyrights = songs[0].Tag.Copyright; } else { form1.Copyrights = "<Διατήρηση τιμής>"; } if (SameDescription(songs)) { form1.Description = songs[0].Tag.Description; } else { form1.Description = "<Διατήρηση τιμής>"; } if (SameGrouping(songs)) { form1.Grouping = songs[0].Tag.Grouping; } else { form1.Grouping = "<Διατήρηση τιμής>"; } if (SameSubtitle(songs)) { form1.Subtitle = songs[0].Tag.Subtitle; } else { form1.Subtitle = "<Διατήρηση τιμής>"; } if (SamePublisher(songs)) { form1.Publisher = songs[0].Tag.Publisher; } else { form1.Publisher = "<Διατήρηση τιμής>"; } if (SameLyricist(songs)) { form1.Lyricist = songs[0].Tag.Lyricist; } else { form1.Lyricist = "<Διατήρηση τιμής>"; } if (songs[0].Tag.Pictures.Length >= 1) { var bin = songs[0].Tag.Pictures[0].Data.Data; form1.AlbumPicture = Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(1000, 1000, null, IntPtr.Zero); } } else { form1.AlbumText = "<Διατήρηση τιμής>"; form1.YearText = (SameYear(songs)) ? songs[0].Tag.Year.ToString() : "<Διατήρηση τιμής>"; form1.CommentText = (SameComment(songs)) ? songs[0].Tag.Comment : "΄<Διατήρηση τιμής>"; if (SameGenre(songs)) { string genretexts = null; for (int i = 0; i < songs[0].Tag.Genres.Length; i++) { if (i != songs[0].Tag.Genres.Length - 1) { genretexts = genretexts + songs[0].Tag.Genres[i] + ","; } else { genretexts = genretexts + songs[0].Tag.Genres[i]; } } form1.GenreText = genretexts; } else { form1.GenreText = "<Διατήρηση τιμής>"; } if (SameArtist(songs)) { string artisttexts = null; for (int i = 0; i < songs[0].Tag.Performers.Length; i++) { if (i != songs[0].Tag.Performers.Length - 1) { artisttexts = artisttexts + songs[0].Tag.Performers[i] + ","; } else { artisttexts = artisttexts + songs[0].Tag.Performers[i]; } } form1.ArtistText = artisttexts; } else { form1.ArtistText = "<Διατήρηση τιμής"; } if (SameAlbumArtist(songs)) { string albumartists = null; for (int i = 0; i < songs[0].Tag.AlbumArtists.Length; i++) { if (i != songs[0].Tag.AlbumArtists.Length - 1) { albumartists = albumartists + songs[0].Tag.AlbumArtists[i] + ","; } else { albumartists = albumartists + songs[0].Tag.AlbumArtists[i]; } } form1.AlbumArtist = albumartists; } else { form1.AlbumArtist = "<Διατήρηση τιμής>"; } if (SameComposers(songs)) { string composers = null; for (int i = 0; i < songs[0].Tag.Composers.Length; i++) { if (i != songs[0].Tag.Composers.Length - 1) { composers = composers + songs[0].Tag.Composers[i] + ","; } else { composers = composers + songs[0].Tag.Composers[i]; } } form1.Composers = composers; } else { form1.Composers = "<Διατήρηση τιμής>"; } if (SameConductor(songs)) { form1.Conductors = songs[0].Tag.Conductor; } else { form1.Conductors = "<Διατήρηση τιμής>"; } if (SameArtistURL(songs)) { form1.ArtistUrl = songs[0].Tag.ArtistURL; } else { form1.ArtistUrl = "<Διατήρηση τιμής>"; } if (SameCopyrights(songs)) { form1.Copyrights = songs[0].Tag.Copyright; } else { form1.Copyrights = "<Διατήρηση τιμής>"; } if (SameDescription(songs)) { form1.Description = songs[0].Tag.Description; } else { form1.Description = "<Διατήρηση τιμής>"; } if (SameGrouping(songs)) { form1.Grouping = songs[0].Tag.Grouping; } else { form1.Grouping = "<Διατήρηση τιμής>"; } if (SameSubtitle(songs)) { form1.Subtitle = songs[0].Tag.Subtitle; } else { form1.Subtitle = "<Διατήρηση τιμής>"; } if (SamePublisher(songs)) { form1.Publisher = songs[0].Tag.Publisher; } else { form1.Publisher = "<Διατήρηση τιμής>"; } if (SameLyricist(songs)) { form1.Lyricist = songs[0].Tag.Lyricist; } else { form1.Lyricist = "<Διατήρηση τιμής>"; } } } } }