[GSoC status report] Week 7

Teo Mrnjavac teo.mrnjavac at gmail.com
Tue Jun 9 00:16:54 CEST 2009

During week 7 I have finally implemented SortMap::deleteRows(). The
algorithm isn't very efficient, but it's optimizable and it works! I
have also moved the multilevelLessThan functor and other algorithms to
SortAlgorithms.h and .cpp.
Unfortunately, for some weird reason even though the SortMap
consistency is now correctly handled (and this I know thanks to the
huge wall of debug text), when I remove some tracks the wrong tracks
disappear :(
So I decided to try an entirely different path.
I branched my code into a new branch, scrapped all the SortMap stuff
and subclassed Playlist::SortProxy from QSortFilterProxyModel instead
of QAbstractProxyModel. I also did a major refactor of SortProxy and
cleaned up unused code.
The good news is that sorting works, adding tracks works, and deleting
tracks *almost* works. The bad news is that consistency is now
maintained internally by QSortFilterProxyModel stuff so part of my
proxy has become a black box to me and I'll need to flood it with
debug spam to find out what's wrong with track removal. Also, since
QSortFilterProxyModel::sort() normally operates on a single column, I
had to feed it a dummy column and hack around it so this bit of code
isn't very elegant, but at least it works better than before.

For week 8 I plan to flood the thing with debug spam and make track
removal work well; and the view needs to be decoupled from
FilterProxy. I'm also looking forward to finally pushing all my work
to trunk. Ideally, in two or three weeks when I manage to tie up any
loose ends in the proxy I'll take a break for an exam and then I'll
start working on the interface.

More information about the Amarok-devel mailing list