> On April 18, 2013, 12:30 p.m., Matěj Laitl wrote:
> > Thanks for the investigation and the patch, it looks very good and contains 
> > very welcome cleanups. Also kudos for including & cleaning up the test 
> > case. As I'm not really proficient in this part of Amarok code, let's give 
> > other devs a day or 2 to have s chance to review this. In the meantime you 
> > might solve the nitpick below.
> 
> Konrad Zemek wrote:
>     Thanks for the review! (And sorry if this is a wrong way to respond, 
> reviewboard still makes me a little bit confused.)
>     These changes are in whole more of a cleanup than a refactor. The only 
> logic that change here is the one about comparing by album artist when album 
> names are the same (which solves a yet-unexisting bugreport, which I'll 
> create later).
>     I feel that what I've done here make some possibilities for more serious 
> changes clearer. What I noticed in particular is that we're performing the 
> same comparisons in multiple places, but never using quite the same logic 
> (e.g. comparisons done for sorting collections and comparisons done for 
> sorting playlist), so there's a lot of opportunity to streamline things, 
> "harden" logic, and make it consistent. I may be picking up on it if the time 
> permits.
>     
>     A side note: the lines comparing Album, AlbumArtist, Artist, are all 
> pretty much identical apart from the types used. This would definitely be 
> resolved as a part of abovementioned streamlining, but for now maybe a 
> templated (ducktyped) helper function would be optimal to reduce code 
> duplication.

> (And sorry if this is a wrong way to respond, reviewboard still makes me a 
> little bit confused.)

This is the right way. We all fight reviewboard, I'm not happy with it, but we 
got it maintained for free by KDE Sysadmins...

> I feel that what I've done here make some possibilities for more serious 
> changes clearer. What I noticed in particular is that we're performing the 
> same comparisons in multiple places, but never using quite the same logic 
> (e.g. comparisons done for sorting collections and comparisons done for 
> sorting playlist), so there's a lot of opportunity to streamline things, 
> "harden" logic, and make it consistent. I may be picking up on it if the time 
> permits.

That would be great! This code is really a candidate for factoring out to 
something generic & shared by all places that need it. (see for example 
in-the-works https://git.reviewboard.kde.org/r/109369/ that would benefit from 
it ) One thing that prevents this factoring out is that Playlist::SortLevel 
uses playlist-specific Playlist::Column enum instead of a generetic Meta::val* 
field identifiers (and associated playlist-specific things). Also note that we 
like small and gradual (yet self-contained) patches, so 1st patch could be to 
use Meta::val* in SortOrder, second to move the sorting algo to a better place, 
third to actually use it in another place... While this is a bit more work, it 
really helps code review and finding regressions.

> A side note: the lines comparing Album, AlbumArtist, Artist, are all pretty 
> much identical apart from the types used. This would definitely be resolved 
> as a part of abovementioned streamlining, but for now maybe a templated 
> (ducktyped) helper function would be optimal to reduce code duplication.

Well done.


- Matěj


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/110070/#review31241
-----------------------------------------------------------


On April 19, 2013, 12:08 a.m., Konrad Zemek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/110070/
> -----------------------------------------------------------
> 
> (Updated April 19, 2013, 12:08 a.m.)
> 
> 
> Review request for Amarok.
> 
> 
> Description
> -------
> 
> Cleaned up playlist multilevel sorting algorithm. Added album artist special 
> case to playlist sorting.
> 
> It fixes an issue with two albums being merged on the playlist when they 
> happen to have the same name, and sorting by album is enabled.
> Originally thought to fix bug 271105, it actually fixes some other, but 
> connected, one (see my comment 
> https://bugs.kde.org/show_bug.cgi?id=271105#c10 ).
> I'll search for a bug report and submit one if I find none.
> 
> 
> This addresses bug 271105.
>     https://bugs.kde.org/show_bug.cgi?id=271105
> 
> 
> Diffs
> -----
> 
>   src/playlist/proxymodels/SortAlgorithms.h 
> da18fcc2107d83515ff176746e751fe00e786362 
>   src/playlist/proxymodels/SortAlgorithms.cpp 
> c7d0df9f6b86318fd896a6de08fef6d85623215b 
>   src/playlist/proxymodels/SortScheme.h 
> 0fcd3a580deff7f2b4e6e65d0551c7332e0b6c9e 
>   src/playlist/proxymodels/SortScheme.cpp 
> de4f37adaeb6e8bb914eb7c91ff4803d01fc5623 
>   tests/mocks/MetaMock.h 03fea2aaf7f27236c43a8cb78c241078414dd39c 
>   tests/playlist/TestPlaylistModels.cpp 
> 8964333517e431487b6ad4ba50d3e359f51bf3f6 
> 
> Diff: http://git.reviewboard.kde.org/r/110070/diff/
> 
> 
> Testing
> -------
> 
> Manual tests + relevant unittest added in testplaylistmodels
> 
> 
> Thanks,
> 
> Konrad Zemek
> 
>

_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel

Reply via email to