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();
                };
            }
        }
Пример #2
0
 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 = "<Διατήρηση τιμής>";
                 }
             }
         }
     }
 }