was limited by the visible list count, it did not care if the insertion
failed, it didn't maintain the BListItem::fHasSubitems field, neither
fVisible, and it didn't invalidate the latch of the parent, if needed.
* The "add item at end" also did not care if the item should be added to the
visible list, too, it always did.
* AddUnder() would have crashed with a NULL superitem.
* _RemoveItem() now updates the fHasSubitems field as well.
* _SuperitemForIndex() can now return the index of the superitem as well.
* SortItemsUnder() did not check if the "underItem" if the items should be
added to the visible list or not, it also just did.
* SortItemsUnder() now invalidates the part of the visible list that may
have been changed.
* This fixed bug #662, and possibly #663, too (at least I could never
reproduce it).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17812 a95241bf-73f2-0310-859d-f6bbb57e9c96
what Be's implementation did wrong but instead of taking almost 30 seconds to
sort the MIME type database (roughly 1100 entries, and yes, that's why the
original FileTypes is that slow when it has to show the internal types), this
one needs only 4 ms for the same task (that's an amply 7500x speedup).
* Implemented some more missing functions - it's by no means complete yet, though.
* Rewrote OutlineListView.h, ListItem.h, and StringItem.h.
* Fixed some minor bugs, but there are probably a lot more.
* Major cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16349 a95241bf-73f2-0310-859d-f6bbb57e9c96