Home
last modified time | relevance | path

Searched hist:"72 fff6d3851323e3321550fa00836f03fa07cdf4" (Results 1 – 4 of 4) sorted by relevance

/haiku/src/apps/haikudepot/ui/
H A DFeaturedPackagesView.h72fff6d3851323e3321550fa00836f03fa07cdf4 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 DFeaturedPackagesView.cpp72fff6d3851323e3321550fa00836f03fa07cdf4 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 DMainWindow.h72fff6d3851323e3321550fa00836f03fa07cdf4 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 DMainWindow.cpp72fff6d3851323e3321550fa00836f03fa07cdf4 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