private void RemoveUnmatchedKeyframes() { // This process can take a while on lists above 100K items // TODO: Consider adding benchmark and option to break out of filter early instead of freezing KeyframesListBox.BeginUpdate(); _cachedVisibleKeyframeList.Clear(); foreach (NSR.KeyframeHeader keyframeHeader in _cachedKeyframeList) { if (keyframeHeader.KeyframeType.Contains(FilterComboBox.Text)) { _cachedVisibleKeyframeList.Add(keyframeHeader); } } KeyframesListBox.VirtualListSize = _cachedVisibleKeyframeList.Count; KeyframesListBox.EndUpdate(); }
private void Ghost_Info_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason != CloseReason.UserClosing) { return; } _loadingPacifier.Text = "Closing..."; _loadingPacifier.Visible = true; Refresh(); // Clear then dispose the listview to prevent a long freeze otherwise _cachedKeyframeList.Clear(); _cachedVisibleKeyframeList.Clear(); KeyframesListBox.Items.Clear(); KeyframesListBox.Dispose(); _loadingPacifier.Dispose(); }