Commit 4e58f040e7fd0822f895aa8f803c0a8aa6e27a07
- Diff rendering mode:
- inline
- side by side
src/playlistbrowser.cpp
(37 / 2)
|   | |||
| 915 | 915 | e = d.namedItem( "category" ).toElement(); | |
| 916 | 916 | QString version = e.attribute("formatversion"); | |
| 917 | 917 | if ( version == "1.2" ) { | |
| 918 | PlaylistCategory* p = new PlaylistCategory( m_listview, after , e ); | ||
| 918 | PlaylistCategory* p = new PlaylistCategory( m_listview, after, e ); | ||
| 919 | 919 | p->setText( 0, i18n("Dynamic Playlists") ); | |
| 920 | 920 | return p; | |
| 921 | 921 | } | |
| 922 | 922 | else if ( version == "1.1" ) { | |
| 923 | 923 | // In 1.1, playlists would be refered only by its name. | |
| 924 | 924 | // 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 ); | ||
| 926 | 926 | p->setText( 0, i18n("Dynamic Playlists") ); | |
| 927 | fixDynamicPlaylistPath( p ); | ||
| 927 | 928 | return p; | |
| 928 | 929 | } | |
| 929 | 930 | else { // Old unversioned format | |
| … | … | ||
| 937 | 937 | return p; | |
| 938 | 938 | } | |
| 939 | 939 | } | |
| 940 | } | ||
| 941 | |||
| 942 | |||
| 943 | void | ||
| 944 | PlaylistBrowser::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 | |||
| 966 | QString | ||
| 967 | PlaylistBrowser::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(); | ||
| 940 | 974 | } | |
| 941 | 975 | ||
| 942 | 976 | void PlaylistBrowser::saveDynamics() |
src/playlistbrowser.h
(2 / 0)
|   | |||
| 159 | 159 | void updateSmartPlaylistElement( QDomElement& query ); | |
| 160 | 160 | ||
| 161 | 161 | PlaylistCategory* loadDynamics(); | |
| 162 | void fixDynamicPlaylistPath( QListViewItem *item ); | ||
| 163 | QString guessPathFromPlaylistName( QString name ); | ||
| 162 | 164 | ||
| 163 | 165 | PlaylistCategory* loadPodcasts(); | |
| 164 | 166 | QMap<int,PlaylistCategory*> loadPodcastFolders( PlaylistCategory *p ); |

