extragear/multimedia/amarok

Soren Harward stharward at gmail.com
Tue Oct 7 20:20:53 CEST 2008


SVN commit 868947 by stharward:

Major overhaul of the playlist subsystem

== Changes for end users ==
In the playlist view, mouse and keyboard event handling, and the selection
system have both been significantly improved.  The undo/redo commands now work
properly in all cases.  Album grouping works consistently.  Some of the eye
candy (like animations) has been temporarily removed, but will hopefully return
in the future.

== Changes in general Amarok code ==
The PlaylistModel has been split into four different classes:
1) PlaylistActions
2) PlaylistController
3) PlaylistModel
4) GroupingProxy

The play, nextTrack, and previousTrack functions are now part of
PlaylistActions.  Functions that modify the contents of the playlist (insert,
remove, and move tracks; undo and redo) are now part of PlaylistController.  If
you want to find out about the contents of the playlist, you still use
PlaylistModel, though you cannot modify it without using the Controller.  I
encourage you to take a look at the headers for each of these classes to find
out what functions are available.

The album grouping functionality that used to be in the PlaylistModel has been
moved into GroupingProxy.  Both GraphicsView and PrettyListView (described in
the next section) use GroupingProxy.  It really isn't useful for anything other
than playlist views.

The signals and slots for the PlaylistModel have changed substantially;
PlaylistModel now behaves much more like a QAbstractItem model when it is
modified.

A position-independent accessing system has been added to the model for
situations where you care what is in the playlist, but not what order the
playlist is in (eg, Random Track mode).

The Model::trackNumberLessThan() function has moved to Meta::Track::lessThan()

== Changes in the playlist subsystem ==
The src/playlist/ directory has been rearranged.

Along with the PlaylistModel changes, there is a new View for the playlist,
called PrettyListView.  It subclasses QListView and is designed to be a
replacement for GraphicsView.  The code for GraphicsView still exists in the
source tree and has been mostly ported to the new PlaylistModel system, but
PrettyListView solves a lot of the selection model and event handling problems
of the GraphicsView.

CCMAIL: amarok-devel at kde.org
CCBUG: 167861
CCBUG: 171048
CCBUG: 171622

 M  +4 -2      ChangeLog  
 M  +3 -3      src/ActionClasses.cpp  
 M  +8 -8      src/App.cpp  
 M  +16 -18    src/CMakeLists.txt  
 M  +5 -3      src/DirectoryLoader.cpp  
 M  +6 -4      src/EngineController.cpp  
 M  +25 -15    src/MainWindow.cpp  
 M  +3 -2      src/Systray.cpp  
 M  +3 -4      src/browsers/collectionbrowser/CollectionTreeView.cpp  
 M  +2 -1      src/browsers/collectionbrowser/CollectionTreeView.h  
 M  +1 -0      src/browsers/collectionbrowser/CollectionWidget.cpp  
 M  +3 -2      src/browsers/filebrowser/MyDirOperator.cpp  
 M  +4 -4      src/browsers/playlistbrowser/DynamicCategory.cpp  
 M  +3 -3      src/browsers/playlistbrowser/PodcastCategory.cpp  
 M  +2 -2      src/browsers/playlistbrowser/PodcastModel.cpp  
 M  +5 -9      src/browsers/playlistbrowser/UserPlaylistTreeView.cpp  
 M  +2 -2      src/context/applets/serviceinfo/ServiceInfo.cpp  
 M  +2 -2      src/covermanager/CoverManager.cpp  
 M  +3 -2      src/dbus/PlayerDBusHandler.cpp  
 M  +7 -9      src/dbus/TracklistDBusHandler.cpp  
 M  +1 -1      src/dbus/TracklistDBusHandler.h  
 M  +2 -3      src/dynamic/BiasedPlaylist.cpp  
 M  +1 -0      src/main.cpp  
 M  +25 -1     src/meta/Meta.cpp  
 M  +3 -1      src/meta/Meta.h  
 D             src/playlist/DynamicTrackNavigator.cpp  
 D             src/playlist/DynamicTrackNavigator.h  
 A             src/playlist/GroupingProxy.cpp   [License: GPL (v2/3)]
 A             src/playlist/GroupingProxy.h   [License: GPL (v2/3)]
 A             src/playlist/PlaylistActions.cpp   [License: GPL (v2/3)]
 A             src/playlist/PlaylistActions.h   [License: GPL (v2/3)]
 D             src/playlist/PlaylistAlbumGroup.cpp  
 D             src/playlist/PlaylistAlbumGroup.h  
 D             src/playlist/PlaylistClassicView.cpp  
 D             src/playlist/PlaylistClassicView.h  
 A             src/playlist/PlaylistController.cpp   [License: GPL (v2/3)]
 A             src/playlist/PlaylistController.h   [License: GPL (v2/3)]
 D             src/playlist/PlaylistDropVis.cpp  
 D             src/playlist/PlaylistDropVis.h  
 D             src/playlist/PlaylistGraphicsItem.cpp  
 D             src/playlist/PlaylistGraphicsItem.h  
 D             src/playlist/PlaylistGraphicsScene.cpp  
 D             src/playlist/PlaylistGraphicsScene.h  
 D             src/playlist/PlaylistGraphicsView.cpp  
 D             src/playlist/PlaylistGraphicsView.h  
 M  +8 -11     src/playlist/PlaylistHeader.cpp  
 M  +9 -2      src/playlist/PlaylistItem.cpp  
 M  +9 -6      src/playlist/PlaylistItem.h  
 M  +339 -1507 src/playlist/PlaylistModel.cpp  
 M  +99 -270   src/playlist/PlaylistModel.h  
 D             src/playlist/PlaylistRowList.cpp  
 D             src/playlist/PlaylistRowList.h  
 D             src/playlist/PlaylistTextItem.cpp  
 D             src/playlist/PlaylistTextItem.h  
 D             src/playlist/PlaylistViewCommon.cpp  
 D             src/playlist/PlaylistViewCommon.h  
 M  +24 -30    src/playlist/PlaylistWidget.cpp  
 M  +4 -0      src/playlist/PlaylistWidget.h  
 D             src/playlist/RandomAlbumNavigator.cpp  
 D             src/playlist/RandomAlbumNavigator.h  
 D             src/playlist/RandomTrackNavigator.cpp  
 D             src/playlist/RandomTrackNavigator.h  
 D             src/playlist/RepeatAlbumNavigator.cpp  
 D             src/playlist/RepeatAlbumNavigator.h  
 D             src/playlist/RepeatPlaylistNavigator.cpp  
 D             src/playlist/RepeatPlaylistNavigator.h  
 D             src/playlist/RepeatTrackNavigator.cpp  
 D             src/playlist/RepeatTrackNavigator.h  
 D             src/playlist/SimpleTrackNavigator.cpp  
 D             src/playlist/SimpleTrackNavigator.h  
 D             src/playlist/StandardTrackNavigator.cpp  
 D             src/playlist/StandardTrackNavigator.h  
 D             src/playlist/TrackNavigator.cpp  
 D             src/playlist/TrackNavigator.h  
 M  +33 -120   src/playlist/UndoCommands.cpp  
 M  +19 -76    src/playlist/UndoCommands.h  
 A             src/playlist/navigators (directory)  
 A             src/playlist/navigators/DynamicTrackNavigator.cpp   src/playlist/DynamicTrackNavigator.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/DynamicTrackNavigator.h   src/playlist/DynamicTrackNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RandomAlbumNavigator.cpp   [License: GPL (v2/3)]
 A             src/playlist/navigators/RandomAlbumNavigator.h   src/playlist/RandomAlbumNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RandomTrackNavigator.cpp   [License: GPL (v2/3)]
 A             src/playlist/navigators/RandomTrackNavigator.h   src/playlist/RandomTrackNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RepeatAlbumNavigator.cpp   [License: GPL (v2/3)]
 A             src/playlist/navigators/RepeatAlbumNavigator.h   src/playlist/RepeatAlbumNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RepeatPlaylistNavigator.cpp   src/playlist/RepeatPlaylistNavigator.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RepeatPlaylistNavigator.h   src/playlist/RepeatPlaylistNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/RepeatTrackNavigator.cpp   src/playlist/RepeatTrackNavigator.cpp#868867 [License: GPL (v2)]
 A             src/playlist/navigators/RepeatTrackNavigator.h   src/playlist/RepeatTrackNavigator.h#868867 [License: GPL (v2+)]
 A             src/playlist/navigators/SimpleTrackNavigator.cpp   src/playlist/SimpleTrackNavigator.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/SimpleTrackNavigator.h   src/playlist/SimpleTrackNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/StandardTrackNavigator.cpp   src/playlist/StandardTrackNavigator.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/StandardTrackNavigator.h   src/playlist/StandardTrackNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/TrackNavigator.cpp   src/playlist/TrackNavigator.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/navigators/TrackNavigator.h   src/playlist/TrackNavigator.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view (directory)  
 A             src/playlist/view/PlaylistViewCommon.cpp   src/playlist/PlaylistViewCommon.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/PlaylistViewCommon.h   src/playlist/PlaylistViewCommon.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/classic (directory)  
 A             src/playlist/view/classic/PlaylistClassicView.cpp   src/playlist/PlaylistClassicView.cpp#868867 [License: GPL (v2+)]
 A             src/playlist/view/classic/PlaylistClassicView.h   src/playlist/PlaylistClassicView.h#868867 [License: GPL (v2+)]
 A             src/playlist/view/graphic (directory)  
 A             src/playlist/view/graphic/PlaylistDropVis.cpp   src/playlist/PlaylistDropVis.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistDropVis.h   src/playlist/PlaylistDropVis.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsItem.cpp   src/playlist/PlaylistGraphicsItem.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsItem.h   src/playlist/PlaylistGraphicsItem.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsScene.cpp   src/playlist/PlaylistGraphicsScene.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsScene.h   src/playlist/PlaylistGraphicsScene.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsView.cpp   src/playlist/PlaylistGraphicsView.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistGraphicsView.h   src/playlist/PlaylistGraphicsView.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistTextItem.cpp   src/playlist/PlaylistTextItem.cpp#868867 [License: GPL (v2/3)]
 A             src/playlist/view/graphic/PlaylistTextItem.h   src/playlist/PlaylistTextItem.h#868867 [License: GPL (v2/3)]
 A             src/playlist/view/listview (directory)  
 A             src/playlist/view/listview/PrettyItemDelegate.cpp   [License: GPL (v2/3)]
 A             src/playlist/view/listview/PrettyItemDelegate.h   [License: GPL (v2/3)]
 A             src/playlist/view/listview/PrettyListView.cpp   [License: GPL (v2/3)]
 A             src/playlist/view/listview/PrettyListView.h   [License: GPL (v2/3)]
 M  +3 -3      src/scriptengine/AmarokEngineScript.cpp  
 M  +21 -16    src/scriptengine/AmarokPlaylistScript.cpp  
 M  +3 -4      src/scriptengine/AmarokPlaylistScript.h  
 M  +1 -0      src/services/ServiceCollectionTreeView.cpp  
 M  +2 -2      src/services/lastfm/LastFmService.cpp  
 M  +3 -2      src/services/lastfm/SimilarArtistsAction.cpp  
 M  +10 -14    src/services/magnatune/MagnatuneStore.cpp  
 M  +2 -0      src/services/shoutcast/ShoutcastServiceQueryMaker.cpp  




More information about the Amarok-devel mailing list