Searched hist:"72 fff6d3851323e3321550fa00836f03fa07cdf4" (Results 1 – 4 of 4) sorted by relevance
/haiku/src/apps/haikudepot/ui/ |
H A D | FeaturedPackagesView.h | 72fff6d3851323e3321550fa00836f03fa07cdf4 Fri Nov 24 12:41:57 UTC 2017 Julian Harnath <julian.harnath@rwth-aachen.de> HaikuDepot: async listing of packages in PackageListView
* The UI became unresponsive while the PackageListView was filled with all the packages. This was especially apparent when using the search function, which clears and refills the view with every typed character.
* Add a new worker thread with the task of asynchronously filling the PackageListView. When a new data model is adopted, we hand the thread a copy of the visible package list. The worker thread then goes through the list and sends the package infos via BMessage back to the MainWindow, in batches of 20 infos per message. When the 20 entries were added, it acknowledges this to the worker thread which will send the next 20 infos (so UI messages can get in between, keeping it responsive). The lists also get a unique ID so that model changes while the list is populating will invalidate previously sent messages (and cause the worker thread to cancel processing the outdated list).
* Search is much nicer to use this way, staying responsive and listing packages while typing. Still not perfect since the PackageListView is still cleared and refilled each time a character is typed, instead of just narrowing down the already displayed package set. But that's to be improved on another day...
* Same applies to filling FeaturedPackagesView btw
|
H A D | FeaturedPackagesView.cpp | 72fff6d3851323e3321550fa00836f03fa07cdf4 Fri Nov 24 12:41:57 UTC 2017 Julian Harnath <julian.harnath@rwth-aachen.de> HaikuDepot: async listing of packages in PackageListView
* The UI became unresponsive while the PackageListView was filled with all the packages. This was especially apparent when using the search function, which clears and refills the view with every typed character.
* Add a new worker thread with the task of asynchronously filling the PackageListView. When a new data model is adopted, we hand the thread a copy of the visible package list. The worker thread then goes through the list and sends the package infos via BMessage back to the MainWindow, in batches of 20 infos per message. When the 20 entries were added, it acknowledges this to the worker thread which will send the next 20 infos (so UI messages can get in between, keeping it responsive). The lists also get a unique ID so that model changes while the list is populating will invalidate previously sent messages (and cause the worker thread to cancel processing the outdated list).
* Search is much nicer to use this way, staying responsive and listing packages while typing. Still not perfect since the PackageListView is still cleared and refilled each time a character is typed, instead of just narrowing down the already displayed package set. But that's to be improved on another day...
* Same applies to filling FeaturedPackagesView btw
|
H A D | MainWindow.h | 72fff6d3851323e3321550fa00836f03fa07cdf4 Fri Nov 24 12:41:57 UTC 2017 Julian Harnath <julian.harnath@rwth-aachen.de> HaikuDepot: async listing of packages in PackageListView
* The UI became unresponsive while the PackageListView was filled with all the packages. This was especially apparent when using the search function, which clears and refills the view with every typed character.
* Add a new worker thread with the task of asynchronously filling the PackageListView. When a new data model is adopted, we hand the thread a copy of the visible package list. The worker thread then goes through the list and sends the package infos via BMessage back to the MainWindow, in batches of 20 infos per message. When the 20 entries were added, it acknowledges this to the worker thread which will send the next 20 infos (so UI messages can get in between, keeping it responsive). The lists also get a unique ID so that model changes while the list is populating will invalidate previously sent messages (and cause the worker thread to cancel processing the outdated list).
* Search is much nicer to use this way, staying responsive and listing packages while typing. Still not perfect since the PackageListView is still cleared and refilled each time a character is typed, instead of just narrowing down the already displayed package set. But that's to be improved on another day...
* Same applies to filling FeaturedPackagesView btw
|
H A D | MainWindow.cpp | 72fff6d3851323e3321550fa00836f03fa07cdf4 Fri Nov 24 12:41:57 UTC 2017 Julian Harnath <julian.harnath@rwth-aachen.de> HaikuDepot: async listing of packages in PackageListView
* The UI became unresponsive while the PackageListView was filled with all the packages. This was especially apparent when using the search function, which clears and refills the view with every typed character.
* Add a new worker thread with the task of asynchronously filling the PackageListView. When a new data model is adopted, we hand the thread a copy of the visible package list. The worker thread then goes through the list and sends the package infos via BMessage back to the MainWindow, in batches of 20 infos per message. When the 20 entries were added, it acknowledges this to the worker thread which will send the next 20 infos (so UI messages can get in between, keeping it responsive). The lists also get a unique ID so that model changes while the list is populating will invalidate previously sent messages (and cause the worker thread to cancel processing the outdated list).
* Search is much nicer to use this way, staying responsive and listing packages while typing. Still not perfect since the PackageListView is still cleared and refilled each time a character is typed, instead of just narrowing down the already displayed package set. But that's to be improved on another day...
* Same applies to filling FeaturedPackagesView btw
|