Revision 562ce2e...

Go back to digest for 25th November 2012

Features in Multimedia

Matěj Laitl committed changes in [amarok] /:

Merge strohel's branch 'gsoc'

This merges my 5-month (or so) work I started as a GSoC 2012 project.
More user-oriented info: http://strohel.blogspot.com/search/label/gsoc
ChangeLog and BUG tags are in the last commit of the merge.

REVIEW: 107348

* gsoc:
StatSyncing: ChangeLog and BUG: tags for the final merge
StatSyncing::MatchedTracksPage: use background instead of bold font
StatSyncing: document producer-consumer pattern as appropriate
StatSyncing::Provider: "is guaranteed to be called" -> "must be called" in docs
StatSyncing::Controller: change auto syncing detection so that scrobbling works
Last.fm SynchronizationAdapter: remove redundant Qt::DirectConnection
Code sharing++ by introducing QSharedDataPointerMisc.h with common operators
StatSyncing::Provider: code sharing++
StatSyncing::Controller: document magic constant
Last.fm StatSyncing: misc fixes
MetadataConfig: remove no-longer needed strange hack
StatSyncing configdialog: implement ExcludedLabelsDialog using .ui file
StatSyncing: fix include ordering
StatSyncing: support for scrobbling recent play count to Last.fm (or other)
StatSyncing::ScrobblingService: add prettyName() method
StatSyncing::Controller: public signal/slot scrobbling interface
StatSyncing: more flexible interface of ScrobblingService, adapt Last.fm
ScrobblingService: error reporting for scrobble() method
Last.fm ScrobblerAdapter: heuristics for determining track from Media Device
StatSyncing::Provider: work-around Last.fm's partial case-sensitivity
LastFmServiceSettings: remove over-QLayout-ness
StatSyncing: Last.fm: ability to opt-out from fancy rating tags
LastFmService: big cleanup
StatSyncing: make it clear Last.fm provider slows down syncing
StatSyncing: blacklist for label synchronization
StatSyncing: MatchedTracksPage: support drag in Unique and Excluded View
StatSyncing: MatchedTracksPage: add Expand and Collapse buttons
StatSyncing: MatchedTracksPage: fix UI according to Usability review
StatSyncing: mass label-conflict resolution, better UI
StatSyncing: implement label setting for collection tracks
StatSyncing: filter based on all columns in Matched Tracks dialog
StatSyncing::Controller: fix logic in slotUpdateNowPlayingWithCurrentTrack()
StatSyncing: support for writing tags, rating to Last.fm
StatSyncing: core support for synchronizing labels
StatSyncing: don't suck when offering fields to synchronize
StatSyncing: don't add The::mainWindow() as parent of statsyncing dialog
StatSyncing: support for matching Last.fm tracks
StatSyncing: match tracks case-insensitively
StatSyncing: export Provider and Track
StatSyncing: polish the UI to (near) perfection
StatSyncing: fix broken track matching due to QSharedPointer -> QSharedDataPointer
StatSyncing::Controller: full tracking of Providers
StatSyncing: move configuration to standard Configure Amarok.. dialog
ConfigDialog: split metadata options into separate category
ConfigDialog: formatting
StatSyncing: fix "Synchronizing Track Statistics" job progress bar
StatSyncing: make Provider QSharedData
StatSyncing: introduce ScrobblingService, adapt Last.fm ScrobblerAdapter
ScrobblerAdapter: set correct timestamp when scrobbling
UmsCollection: More unique collectionId()
MultiTrack, EngineController: Fix MultiTrack API
Rewrite Last.fm ScrobblerAdapter
EngineController: better docs for trackMetadataChanged() signal
ScrobblerAdapter, MainWindow: make banTrack() cleaner using loveTrack() example
EngineController: emit trackFinishedPlaying() in the middle of streams, too
StatSyncing: ChooseProvidersPage.ui fixuifiles
ScrobblerAdapter: remove unused methods
StatSyncing: better sizeHint()s, UI fixes, clean-ups
StatSyncing: paint rating beautifully using stars
StatSyncing: implement auto-synchronize on startup and collection appearance
StatSyncing: Implement saving of synchronized providers and fields
StatSyncing: Back button in the matched tracks dialog
StatSyncing: GUI: add page for the first step of the synchronization
StatSyncing: mass conflict resolution using "Take Ratings From" button
StatSyncing: proper capitalization
StatSyncing: MatchedTracksPage remember which tuples are expanded
StatSyncing: Status bar line in MatchedTracksPage
StatSyncing: support for recent play count for more accurate synchronization
Meta::Statistics: introduce recentPlayCount() and implement in IpodMeta
StatSyncing: disable "Updated" and "Conflicting" tracks item when there are none
StatSyncing: factor MatchedTracksPage out of Process
StatSyncing: more convenient rating conflict detection
StatSyncing: implement actual synchronization
StatSyncing: introduce Provider::writableTrackStatsData() and use it
StatSyncing: rating conflict resolution
StatSyncing: functional view filtering, update & conflict detection
StatSyncing: show fields that are going to be updated in bold
StatSyncing: renames, models, gui for matched tracks
StatSyncing: progress bar for matching track, abort-ability
StatSyncing: move to amaroklib, back-end for collections, track matching
StatSyncing: introduce core (abstract) classes and Controller