The main issue turned out to be that the cancel wasn't working at all. While the footprints are loading the entire dialog is being run from the GAUGE_PROGRESS_REPORTER's onUpdateUI() event loop. Interestingly, the wxDataViewEvents are all considered "UIEvents" and are processed, but needless to say OK, cancel and the other commands that were trying to cancel the lazy loading weren't getting processed in the onUpdateUI() event loop. So cancel only happened when it was finished anyway.
I don't think we're going to be able to do background loading for 5.0. It only really matters the first time you bring up the Component Chooser anyway.
The main issue turned out to be that the cancel wasn't working at all. While the footprints are loading the entire dialog is being run from the GAUGE_PROGRESS_ REPORTER' s onUpdateUI() event loop. Interestingly, the wxDataViewEvents are all considered "UIEvents" and are processed, but needless to say OK, cancel and the other commands that were trying to cancel the lazy loading weren't getting processed in the onUpdateUI() event loop. So cancel only happened when it was finished anyway.
I don't think we're going to be able to do background loading for 5.0. It only really matters the first time you bring up the Component Chooser anyway.