Commit 4e58f040e7fd0822f895aa8f803c0a8aa6e27a07

  • avatar
  • Alexandre Pereira de Oliveira <aoliveira @kde…il.net>
  • Thu Oct 26 22:13:28 CEST 2006
*Try* to convert old dynamic playlists, instead of just ignoring them.

svn path=/trunk/extragear/multimedia/amarok/; revision=599374
  
915915 e = d.namedItem( "category" ).toElement();
916916 QString version = e.attribute("formatversion");
917917 if ( version == "1.2" ) {
918 PlaylistCategory* p = new PlaylistCategory( m_listview, after , e );
918 PlaylistCategory* p = new PlaylistCategory( m_listview, after, e );
919919 p->setText( 0, i18n("Dynamic Playlists") );
920920 return p;
921921 }
922922 else if ( version == "1.1" ) {
923923 // In 1.1, playlists would be refered only by its name.
924924 // TODO: We can *try* to convert by using findItem
925 PlaylistCategory* p = new PlaylistCategory( m_listview, after , QDomElement() );
925 PlaylistCategory* p = new PlaylistCategory( m_listview, after, e );
926926 p->setText( 0, i18n("Dynamic Playlists") );
927 fixDynamicPlaylistPath( p );
927928 return p;
928929 }
929930 else { // Old unversioned format
937937 return p;
938938 }
939939 }
940}
941
942
943void
944PlaylistBrowser::fixDynamicPlaylistPath( QListViewItem *item )
945{
946 DynamicEntry *entry = dynamic_cast<DynamicEntry*>( item );
947 if ( entry ) {
948 QStringList names = entry->items();
949 QStringList paths;
950 foreach( names ) {
951 QString path = guessPathFromPlaylistName( *it );
952 if ( !path.isNull() )
953 paths+=path;
954 }
955 entry->setItems( paths );
956 }
957 PlaylistCategory *cat = dynamic_cast<PlaylistCategory*>( item );
958 if ( cat ) {
959 QListViewItem *it = cat->firstChild();
960 for( ; it; it = it->nextSibling() ) {
961 fixDynamicPlaylistPath( it );
962 }
963 }
964}
965
966QString
967PlaylistBrowser::guessPathFromPlaylistName( QString name )
968{
969 QListViewItem *item = m_listview->findItem( name, 0, Qt::ExactMatch );
970 PlaylistBrowserEntry *entry = dynamic_cast<PlaylistBrowserEntry*>( item );
971 if ( entry )
972 return entry->name();
973 return QString();
940974}
941975
942976void PlaylistBrowser::saveDynamics()
  
159159 void updateSmartPlaylistElement( QDomElement& query );
160160
161161 PlaylistCategory* loadDynamics();
162 void fixDynamicPlaylistPath( QListViewItem *item );
163 QString guessPathFromPlaylistName( QString name );
162164
163165 PlaylistCategory* loadPodcasts();
164166 QMap<int,PlaylistCategory*> loadPodcastFolders( PlaylistCategory *p );