private void AddUnassignedEntriesToGroup(EntryGroup group, List <int> indices) { List <Entry> groupedEntries = new List <Entry>(); foreach (int index in indices) { groupedEntries.Add(UnassignedEntries[index]); } UnassignedEntries.RemoveAll(entry => groupedEntries.Contains(entry)); group.AddRange(groupedEntries); RefreshListViews(); }
private void CreateGroupFromUnassignedEntries(List <int> indices) { List <Entry> groupedEntries = new List <Entry>(); foreach (int index in indices) { groupedEntries.Add(UnassignedEntries[index]); } UnassignedEntries.RemoveAll(entry => groupedEntries.Contains(entry)); Groups.Add(groupedEntries); RefreshListViews(); }
private void RefreshListViews() { var cmp = new NaturalSortComparer(true); UnassignedEntries.Sort((a, b) => cmp.Compare(a.Name, b.Name)); unassignedEntriesView.VirtualListSize = UnassignedEntries.Count; unassignedEntriesView.Refresh(); Groups.Sort(); entryGroupsView.VirtualListSize = Groups.ElementCount(); entryGroupsView.Refresh(); unassignedEntriesView.SelectedIndices.Clear(); entryGroupsView.SelectedIndices.Clear(); UpdateFileCounts(); }
private void Ungroup(List <int> indices) { List <Entry> entriesToRemove = new List <Entry>(); foreach (int index in indices) { var element = Groups.ElementAt(index); if (element is Entry entry) { entriesToRemove.Add(entry); } } foreach (var entry in entriesToRemove) { entry.RemoveGroup(); UnassignedEntries.Add(entry); } RefreshListViews(); }