+ playlist.setName(name);
+ qWarning() << "Saving playlist in new format";
+ savePlaylist(playlist);
+ playlistFile.close();
+ playlistFile.remove();
+ } else {
+ playlistFile.setFileName(_path_prefix + "/" + name + "." + _PLAYLIST_FILE_EXTENSION_);
+ // legacy _end_
+ if (playlistFile.exists()) {
+ playlist.setName(name);
+ QDomDocument doc;
+ playlistFile.open(QFile::ReadOnly);
+ doc.setContent(&playlistFile);
+ playlistFile.close();
+ QDomElement eplaylist = doc.documentElement();
+ if (eplaylist.tagName() == "playlist") {
+ QDomElement etracklist = eplaylist.firstChildElement("trackList");
+ if (!etracklist.isNull()) {
+ QDomElement etrack = etracklist.firstChildElement("track");
+ while (!etrack.isNull()) {
+ QDomElement elocation = etrack.firstChildElement("location");
+ QDomElement eextension = etrack.firstChildElement("extension");
+ if (!eextension.isNull()) {
+ QDomElement ecl_clip = eextension.firstChildElement("cl:clip");
+ if (!ecl_clip.isNull()) {
+ QString artist = ecl_clip.attribute("artist");
+ QString album = ecl_clip.attribute("album");
+ QString title = ecl_clip.attribute("title");
+ QDomElement eduration = etrack.firstChildElement("duration");
+ if (!eduration.isNull()) {
+ QVariant duration = eduration.text();
+ QByteArray basource;
+ basource.append(elocation.text());
+ QString source = QUrl::fromEncoded(basource).toLocalFile();
+ TrackMetadata meta(title, artist, album, duration.toInt()/1000);
+ Track track(meta, source);
+ playlist.addTrack(track);
+ }
+ }
+ }
+ etrack = etrack.nextSiblingElement("track");
+ }
+ }
+ }
+ // legacy _start_
+ }
+ // legacy _end_