[Banshee-List] Browser + normalization ... please take a look



Hello Guys,

Well After a lot of playing with the code, I have a normalized version ready; this version should use less strings and
generated less object creation because every genre, artist and album strings are created only one time, and the browser
use instance compare instead of a string compare, also many calls to ToLower are no longer necessary.

I have been trying to get some profile information but the mono one does not throw anything useful and the heap buddy
segfault (maybe outdated?); but from my experience in java i try to extrapolate and replace expensive operation for
cheaper one when possible.

To avoid a reloading I change the PlayModel to implement the TreeModel interface instead of inheriting the ListStore,
this allow the stacking of models, in this way it will be possible to add search to the library view without the extra
cost of re-filtering the whole library, and also I add sorting back only this acts only on the visible items and not in
the whole library.

I was experimenting with having pre-filtered models cached but it becomes simply to complicated and the TreeFilter has
the problem that the underlying model is read only, so the whole stacked model has to be cached, that is maybe more than
what is desirable.

My idea is replace also the PlayListSource handling to use  the filters instead of reloading, this way only one store
will be need it. I think this should simplify importing operations.

Though not ready i will like that some people (specially Aaron) take a look at it, the patch was done on a banshee
version 0.10.5 .

Beside the patch a new cs file that should be copied to src/Banshee.Base/ is part of the tarball.
Best regards,

Oscar Forero.

Attachment: banshee-normalized.tbz
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]