//<summary> //Ajoute plusieurs entrées aux listes //</summary> //<param name="items_to_add">entrées à ajouter</param> void AddEntries(ListViewItem[] items_to_add) { foreach (ListViewItem item_to_add in items_to_add) { list_speedruns.Add(item_to_add); list_speedruns_by_name.Add(list_speedruns.Count - 1); list_speedruns_by_time.Add(list_speedruns.Count - 1); } GUI_listView.BeginUpdate(); GUI_listView.Items.Clear(); if (bTriParNom) GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray()); else GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray()); GUI_listView.EndUpdate(); if (!bResizedTimeColumn) { GUI_listView.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); bResizedTimeColumn = true; } }
//<summary> //Retire une entrée aux listes //</summary> //<param name="item_to_remove">entrée à retirer</param> void RemoveEntry(ListViewItem item_to_remove) { int nRemovedItemIndex = list_speedruns.IndexOf(item_to_remove); list_speedruns.Remove(item_to_remove); list_speedruns_by_name.Remove(nRemovedItemIndex); list_speedruns_by_time.Remove(nRemovedItemIndex); GUI_listView.BeginUpdate(); GUI_listView.Items.Clear(); if (bTriParNom) GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray()); else GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray()); GUI_listView.EndUpdate(); }
//////////////// //////////////// //////////////// #region Clic sur une colonne (changement du tri des éléments) /// <summary> /// Action lors d'un clic sur un titre de colonne. /// Réorganise la liste sur l'élément cliqué. /// N'affecte pas le fichier généré en sortie. /// </summary> /// <param name="sender">Paramètre par défaut.</param> /// <param name="e">Paramètre contenant notamment l'index de base 0 /// de la colonne cliquée.</param> private void GUI_listView_ColumnClick(object sender, ColumnClickEventArgs e) { #if PROGRESSBAR_ADDON if (!bIsUpdating) { #endif if (e.Column == 0) //colonne Titre { GUI_listView.BeginUpdate(); if (bTriNomInverse) list_speedruns_by_name.SetComparer(CompareTitreItem); else list_speedruns_by_name.SetComparer(CompareTitreItemInverse); list_speedruns_by_name.Initialize(); GUI_listView.Items.Clear(); GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray()); bTriNomInverse = !bTriNomInverse; bTriParNom = true; GUI_listView.EndUpdate(); } else if (e.Column == 1) //colonne Durée { GUI_listView.BeginUpdate(); if (bTriDureeInverse) list_speedruns_by_time.SetComparer(CompareDureeItem); else list_speedruns_by_time.SetComparer(CompareDureeItemInverse); list_speedruns_by_time.Initialize(); GUI_listView.Items.Clear(); GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray()); bTriDureeInverse = !bTriDureeInverse; bTriParNom = false; GUI_listView.EndUpdate(); } else MessageBox.Show("Pas de tri sur cet élément."); if (GUI_listView.SelectedIndices.Count > 0) GUI_listView.EnsureVisible(GUI_listView.SelectedIndices[0]); #if PROGRESSBAR_ADDON } #endif }