public ListAlbums() { InitializeComponent(); //On charge les données utilisateurs si elles existent. if (File.Exists("user_data.xml")) { XML_Serialization.load_user_data(); } /// Affichage d'images en grid AllPhotosGrid.FlowDirection = FlowDirection.LeftToRight; AllPhotosGrid.AutoScroll = true; foreach (Picture picture in Program.Albums.FirstOrDefault().Pictures) { show_vignette(picture); } /// Affichage des albums AlbumGrid.FlowDirection = FlowDirection.LeftToRight; AlbumGrid.AutoScroll = true; foreach (Album album in Program.Albums) { show_vignette(album); } }
private void decroissantToolStripMenuItem2_Click(object sender, EventArgs e) { if (vignetteAlbumSelected != null) { vignetteAlbumSelected.albumLinked.Pictures = vignetteAlbumSelected.albumLinked.Pictures.OrderByDescending(a => a.intPicRating).ToList(); refreshViewPicturesList(); XML_Serialization.save_user_data(); } }
/// <summary> /// Fonction appelée pour ajouter des images dans un album photo à partir des chemins de fichiers (et qui les sérialise). /// </summary> /// <param name="strFileName">Chemin du fichier correspondant à l'image.</param> private void importPictures(String[] astrFileNames) { Boolean boolAtLeastOnePicAdded = false; List <String> listAllowedFileExt = new List <String>() { ".jpeg", ".jpg", ".png", ".bmp", ".gif" }; String strPicName = ""; if ((vignetteAlbumSelected != null)) { foreach (String strFileName in astrFileNames) { if (listAllowedFileExt.Contains(Path.GetExtension(strFileName))) { if (!(vignetteAlbumSelected.albumLinked.Pictures.Exists(a => a.picturePath == strFileName))) { String strName = Path.GetFileNameWithoutExtension(strFileName); String strDate = File.GetCreationTimeUtc(strFileName).ToShortDateString(); strPicName = strPicName + strName + ", "; Picture pic = new Picture(System.Drawing.Image.FromFile(strFileName), strFileName, strName, 0, "", strDate, vignetteAlbumSelected.albumLinked); AddControlVignettePhoto(pic); boolAtLeastOnePicAdded = true; } } } vignetteAlbumSelected.refreshPreviewPicture(); if (boolAtLeastOnePicAdded) { //On enlève la dernière virgule. strPicName = strPicName.TrimEnd((','), (' ')); this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Image(s) " + strPicName + " importée(s) avec succès."; //On sauvegarde les modifications. XML_Serialization.save_user_data(); } else { this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Les images importées existent déjà dans l'album."; } } else if ((vignetteAlbumSelected == null)) { this.toolStripStatusLabel1.ForeColor = System.Drawing.Color.Red; this.toolStripStatusLabel1.Text = "Aucun album sélectionné!"; } }
private void MoveVignette(object sender, DragEventArgs e) { VignetteNV vignetteSource = e.Data.GetData("VignetteNV") as VignetteNV; FlowLayoutPanel flowlayoutpanelTemp = (FlowLayoutPanel)sender as FlowLayoutPanel; //Si le flowlayoutpanel correspond bien à celui du UserControl que l'on déplace //(On ne doit pouvoir déplacer que les Vignettes d'album dans les Albums et les vignettes de Photos dans les photos). if (vignetteSource.Parent == flowlayoutpanelTemp) { //On obtient le contrôle à la position où l'évènement "drop" a été enregistré. Point p = flowlayoutpanelTemp.PointToClient(new Point(e.X, e.Y)); Control vignetteDestination = flowlayoutpanelTemp.GetChildAtPoint(p); //On obtient l'index (la position) de ce conbtrôle int index = flowlayoutpanelTemp.Controls.GetChildIndex(vignetteDestination, false); //On déplace la vignette source à cette position flowlayoutpanelTemp.Controls.SetChildIndex(vignetteSource, index); //On "invalide" le flowlayoutpanelTemp afin de le redessiner. flowlayoutpanelTemp.Refresh(); //flowlayoutpanelTemp.Invalidate(); //on sauvegarde les modifications XML_Serialization.save_user_data(); } //sinon, si le usercontrol est une PictureVignette et quelle est deplacée dans le flowlayoutpannel des albums else { if ((vignetteSource.Parent == AllPhotosGrid) && (flowlayoutpanelTemp == AlbumGrid)) { VignetteNVAlbum album; VignetteNVPhoto photo; //On obtient le contrôle à la position où l'évènement "drop" a été enregistré. Point p = flowlayoutpanelTemp.PointToClient(new Point(e.X, e.Y)); Control vignetteDestination = flowlayoutpanelTemp.GetChildAtPoint(p); //On obtient l'index (la position) de ce conbtrôle int index = flowlayoutpanelTemp.Controls.GetChildIndex(vignetteDestination, false); //On ajoute la vignettePicture dans lalbum situé à cette position album = (VignetteNVAlbum)flowlayoutpanelTemp.Controls[index]; photo = (VignetteNVPhoto)vignetteSource; album.albumLinked.Pictures.Add(photo.pic); album.refreshPreviewPicture(); //On "invalide" le flowlayoutpanelTemp afin de le redessiner. flowlayoutpanelTemp.Refresh(); //flowlayoutpanelTemp.Invalidate(); //on sauvegarde les modifications XML_Serialization.save_user_data(); } } }
private void createAlbumToolStripMenuItem_Click(object sender, EventArgs e) { AddAlbumWindow dialogNewAlbum = new AddAlbumWindow(); dialogNewAlbum.ShowDialog(); if (dialogNewAlbum.DialogResult == DialogResult.OK) { vignetteAlbumSelected = AddControlVignetteAlbum(dialogNewAlbum.created_album); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; refreshViewPicturesList(); this.toolStripStatusLabel1.ForeColor = System.Drawing.Color.Black; this.toolStripStatusLabel1.Text = dialogNewAlbum.created_album.Title + " a été créé avec succès."; XML_Serialization.save_user_data(); } }
private void importerPhotosToolStripMenuItem_Click(object sender, EventArgs e) { /// Ajoute la photo importée àl'album sélectionné et l'affiche dans la picturebox if (openPictureDialog.ShowDialog() == DialogResult.OK) { foreach (String fileName in openPictureDialog.FileNames) { String name = Path.GetFileNameWithoutExtension(fileName); String date = File.GetCreationTimeUtc(fileName).ToShortDateString(); if ((albumSelected.Alb != null) && (!(albumSelected.Alb.Pictures.Exists(a => a.picturePath == fileName)))) { Picture pic = new Picture(System.Drawing.Image.FromFile(fileName), fileName, name, 0, "", date, albumSelected.Alb); show_vignette(pic); } } //Emplacement temporaire pour l'appel à la méthode de sérialisation. //A changer.// XML_Serialization.save_user_data(); } }
public ListAlbums() { List <VignetteNVAlbum> listVignetteTemp = new List <VignetteNVAlbum>(); InitializeComponent(); //On charge les données utilisateurs si elles existent. if (File.Exists("user_data.xml")) { XML_Serialization.load_user_data(); } //On définit l'album par défaut si il existe if (Program.Albums.Count > 0) { /// Affichage d'images en grid AllPhotosGrid.FlowDirection = FlowDirection.LeftToRight; AllPhotosGrid.AutoScroll = true; foreach (Picture picture in Program.Albums.FirstOrDefault().Pictures) { AddControlVignettePhoto(picture); } /// Affichage des albums AlbumGrid.FlowDirection = FlowDirection.LeftToRight; AlbumGrid.AutoScroll = true; foreach (Album album in Program.Albums) { listVignetteTemp.Add(AddControlVignetteAlbum(album)); } if (listVignetteTemp.Count > 0) { vignetteAlbumSelected = listVignetteTemp.FirstOrDefault(); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; refreshViewPicturesList(); } } }
private void deletePhotosOrAlbums() { List <Picture> listTempRemPic = new List <Picture>(); List <Album> listTempRemAlb = new List <Album>(); List <VignetteNVAlbum> listVignetteTemp = new List <VignetteNVAlbum>(); String strName = ""; if ((listAlbumsSelected.Count > 0) && (listPhotosSelected.Count == 0)) { foreach (VignetteNVAlbum vignetteAlb in listAlbumsSelected) { listTempRemAlb.Add(vignetteAlb.albumLinked); vignetteAlb.albumLinked.Pictures.Clear(); strName = strName + vignetteAlb.albumLinked.Title + ", "; } strName = strName.TrimEnd((','), (' ')); foreach (Album alb in listTempRemAlb) { Program.Albums.Remove(alb); } listAlbumsSelected.Clear(); vignetteAlbumSelected = null; //On rafraichit la vue des albums. AlbumGrid.Controls.Clear(); //Si il reste des albums... if (Program.Albums.Count > 0) { //Alors on remplit l'affichage avec des vignettes d'album. foreach (Album alb in Program.Albums) { listVignetteTemp.Add(AddControlVignetteAlbum(alb)); } //Et la vignette d'album sélectionnée devient la dernière vignette ajoutée. vignetteAlbumSelected = listVignetteTemp.LastOrDefault(); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; } refreshViewPicturesList(); //On sauvegarde les modifications. XML_Serialization.save_user_data(); this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Album(s) " + strName + " supprimé(s) avec succès."; } else if ((listAlbumsSelected.Count > 0) && (listPhotosSelected.Count > 0)) { foreach (VignetteNVPhoto vignettePic in listPhotosSelected) { listTempRemPic.Add(vignettePic.pic); strName = strName + vignettePic.pic.Name + ", "; } //On enlève la dernière virgule strName = strName.TrimEnd((','), (' ')); foreach (Picture pic in listTempRemPic) { //Actuellement le code permet de sélectionner des photos provenant d'albums différents, il faut donc tester si les photos sont bien dans l'album sélectionné avant de les supprimer. //Ce test if n'est plus nécessaire dès qu'on appelle la fonction listPhotosSelected.Clear() à chaque fois qu'on clique sur une vignette d'album. if (vignetteAlbumSelected.albumLinked.Pictures.Exists(a => a == pic)) { vignetteAlbumSelected.albumLinked.Pictures.Remove(pic); } } //On vide la liste des vignettes sélectionnées en mémoire. listPhotosSelected.Clear(); this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Image(s) " + strName + " supprimée(s) avec succès."; vignetteAlbumSelected.refreshPreviewPicture(); refreshViewPicturesList(); XML_Serialization.save_user_data(); } }