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 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