[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src
From: Bart Cerneels <bart.cerneels () kde ! org>
Date: 2009-07-13 20:59:09
Message-ID: 1247518749.824223.20542.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 996108 by shanachie:
Fix deletion of multiple UserPlaylists.
CCBUG:197144
M +18 -26 browsers/playlistbrowser/UserPlaylistModel.cpp
M +0 -1 browsers/playlistbrowser/UserPlaylistModel.h
M +8 -0 playlistmanager/sql/SqlUserPlaylistProvider.cpp
M +1 -0 playlistmanager/sql/SqlUserPlaylistProvider.h
--- trunk/extragear/multimedia/amarok/src/browsers/playlistbrowser/UserPlaylistModel.cpp \
#996107:996108 @@ -68,7 +68,6 @@
: MetaPlaylistModel()
, m_appendAction( 0 )
, m_loadAction( 0 )
- , m_deleteAction( 0 )
{
s_instance = this;
loadPlaylists();
@@ -400,31 +399,33 @@
QList<PopupDropperAction *>
PlaylistBrowserNS::UserModel::actionsFor( const QModelIndexList &indices )
{
- DEBUG_BLOCK
- QList<PopupDropperAction *> actions;
+ QSet<PopupDropperAction *> actions;
+ QList<PopupDropperAction *> actionList;
m_selectedPlaylists.clear();
m_selectedPlaylists << selectedPlaylists( indices );
m_selectedTracks.clear();
m_selectedTracks << selectedTracks( indices );
- actions << createCommonActions( indices );
-
- //only if only one playlist is selected
- if( m_selectedPlaylists.count() == 1 )
+ if( !m_selectedPlaylists.isEmpty() )
{
- //HACK: since we only have one UserPlaylistProvider implementation
-// UserPlaylistProvider *provider = \
The::playlistManager()->defaultUserPlaylists();
- UserPlaylistProvider *provider = qobject_cast<UserPlaylistProvider *> ( \
The::playlistManager()->getProviderForPlaylist( \
m_selectedPlaylists.front() ) );
-// UserPlaylistProvider *provider = qobject_cast<UserPlaylistProvider *> ( \
prov ); + UserPlaylistProvider *provider =
+ qobject_cast<UserPlaylistProvider *>(
+ The::playlistManager()->getProviderForPlaylist(
+ m_selectedPlaylists.front()
+ )
+ );
- if( provider )
- {
- if( !selectedPlaylists().isEmpty() )
- actions << provider->playlistActions( m_selectedPlaylists );
- }
+ if( provider && !selectedPlaylists().isEmpty() )
+ actions +=
+ QSet<PopupDropperAction *>::fromList(
+ provider->playlistActions( m_selectedPlaylists )
+ );
}
- return actions;
+ actionList = actions.toList();
+ actionList << createCommonActions( indices );
+
+ return actionList;
}
void
@@ -461,19 +462,10 @@
connect( m_loadAction, SIGNAL( triggered() ), this, SLOT( slotLoad() ) );
}
- if ( m_deleteAction == 0 )
- {
- m_deleteAction = new PopupDropperAction( The::svgHandler()->getRenderer( \
"amarok/images/pud_items.svg" ), "delete", KIcon( "media-track-remove-amarok" ), \
i18n( "&Delete" ), this );
- connect( m_deleteAction, SIGNAL( triggered() ), \
The::playlistManager()->defaultUserPlaylists(), SLOT( slotDelete() ) \
);
- }
- actions << m_deleteAction;
-
-
if ( indices.count() > 0 )
{
actions << m_appendAction;
actions << m_loadAction;
- actions << m_deleteAction;
}
return actions;
--- trunk/extragear/multimedia/amarok/src/browsers/playlistbrowser/UserPlaylistModel.h \
#996107:996108 @@ -103,7 +103,6 @@
QList<PopupDropperAction *> createCommonActions( QModelIndexList indices );
PopupDropperAction *m_appendAction;
PopupDropperAction *m_loadAction;
- PopupDropperAction *m_deleteAction;
Meta::PlaylistList m_selectedPlaylists;
Meta::PlaylistList selectedPlaylists( const QModelIndexList &list );
--- trunk/extragear/multimedia/amarok/src/playlistmanager/sql/SqlUserPlaylistProvider.cpp \
#996107:996108 @@ -41,6 +41,7 @@
SqlUserPlaylistProvider::SqlUserPlaylistProvider()
: UserPlaylistProvider()
, m_renameAction( 0 )
+ , m_deleteAction( 0 )
{
checkTables();
m_root = Meta::SqlPlaylistGroupPtr( new Meta::SqlPlaylistGroup( "",
@@ -117,6 +118,13 @@
}
actions << m_renameAction;
+ if ( m_deleteAction == 0 )
+ {
+ m_deleteAction = new PopupDropperAction( The::svgHandler()->getRenderer( \
"amarok/images/pud_items.svg" ), "delete", KIcon( "media-track-remove-amarok" ), \
i18n( "&Delete" ), this ); + connect( m_deleteAction, SIGNAL( triggered() ), \
SLOT( slotDelete() ) ); + }
+ actions << m_deleteAction;
+
return actions;
}
--- trunk/extragear/multimedia/amarok/src/playlistmanager/sql/SqlUserPlaylistProvider.h \
#996107:996108 @@ -71,6 +71,7 @@
{ return m_selectedPlaylists; };
Meta::SqlPlaylistList m_selectedPlaylists;
PopupDropperAction *m_renameAction;
+ PopupDropperAction *m_deleteAction;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic