Пример #1
0
        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);
            }
        }
Пример #2
0
 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();
     }
 }
Пример #3
0
        /// <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é!";
            }
        }
Пример #4
0
        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();
                }
            }
        }
Пример #5
0
        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();
            }
        }
Пример #6
0
        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();
            }
        }
Пример #7
0
        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();
                }
            }
        }
Пример #8
0
        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();
            }
        }