Amarok StatSyncing GSoC: week 6

Matěj Laitl · July 2, 2012 · 1 min read

Yes, I'm still working on my GSoC project about statistics synchronization in Amarok. I've skipped one report, because last week I was busy with my university exam and real life. This week is another story, I've added synchronization preparation page (so that you can check what to sync), implemented automatic non-interactive synchronization and more.

New dialog this week: preparation for synchronization.

What I've done this week:
  • Factored Meta::Track::recentPlayCount() into capability, it didn't have much sense.
  • Added above page for the first step of the synchronization, added Back button to the second page.
  • Made Amarok remember syncing preferences: what fields and collections to synchronize. Local Collection and iPod collections are checked by default.
  • Implemented automatic unattended synchronization: checked (or enabled by default not-unchecked) collections will be synchronized automagically as soon as they appear or on start-up (with some delay to let them settle). If ratings conflicts are detected, it will fall-back to interactive mode and you can make the background job interactive as well.
  • Improved minor visual things (ratings are now nicely painted using stars) plus did some code clean-up so that first part of my GSoC approaches merge-ready state.
Problems I've faced:
  • I've fought with QTableView and sizeHint()s a bit, but I've won. :-)
  • The dialogs probably need usability and design review, sure I'll contact KDE Usability group before merging.
What's next:
  • According to my schedule, I've fulfilled week 5 and week 7 with this (funny). More importantly, first part of my project is roughly done by this week's advancements, and I'm quite happy with the results. I think that the unattended synchronization is particularly useful: you just tell Amarok what to synchronize once and it does everything else for you; that's what 99% users will be using most of the time in my opinion.
  • This week I'll finally start looking at Last.fm things.
You can test my work by pulling and building gsoc branch of my Amarok git repository clone, it already works quite well! I also publish weekly diffs with more technical details on KDE's review board which may be a more convenient way to review my code and to comment on it: week 1 week 2 week 3 week 4 week 6