Speed up wxDataViewCtrl::SetSelections() on macOS

Don't make many single-item selection adjustments in SetSelections() in
wxOSX and instead implement it with a single native call to
selectRowIndexes:byExtendingSelection:

This has a dramatic, orders of magnitude effect on this call's
performance when selecting many items: selecting 10 thousand items goes
from minutes of runtime and gigabytes of RAM  to unobservable impact in
both.
This commit is contained in:
Václav Slavík
2020-10-11 18:00:39 +02:00
parent ae8820b2f6
commit 9457c35d42
4 changed files with 18 additions and 3 deletions

View File

@@ -514,6 +514,7 @@ public:
virtual int GetSelections(wxDataViewItemArray& sel) const;
virtual bool IsSelected(const wxDataViewItem& item) const;
virtual void Select(const wxDataViewItem& item);
virtual void Select(const wxDataViewItemArray& items);
virtual void SelectAll();
virtual void Unselect(const wxDataViewItem& item);
virtual void UnselectAll();