void PlayListModel::appendUrls(QList<QUrl> urls) { QProgressDialog progress("Adding files to playlist...", "Cancel", 0, urls.count()); progress.setWindowModality(Qt::ApplicationModal); progress.show(); QList<PlayListItem *> new_items; QListIterator<QUrl> urls_iterator(urls); while (urls_iterator.hasNext()) { QUrl url = urls_iterator.next(); if (url.isLocalFile()) { QString extension = url.fileName().split(".").last().toLower(); if (extension == "m3u") { new_items += urlsToItems(m3uToUrls(url)); } else { new_items += urlToItems(url); } } progress.setValue(progress.value() + 1); if (progress.wasCanceled()) break; } progress.setValue(urls.count()); appendItems(new_items); }
QList<PlayListItem *> PlayListModel::urlToItems(QUrl url) { QList<PlayListItem *> new_items; if (url.isLocalFile()) { QFileInfo f(url.path()); if (f.isDir()) { QDirIterator iterator(url.path(), QDirIterator::Subdirectories); while (iterator.hasNext()) { iterator.next(); if (!iterator.fileInfo().isDir()) { new_items += urlToItems(QUrl::fromLocalFile(iterator.filePath())); } } } else { PlayListItem *p = new PlayListItem(url); if (p->isValid()) { p->ensureHistogram(); new_items += p; } } } else { new_items += new PlayListItem(url); } return new_items; }
QList<PlayListItem *> PlayListModel::urlsToItems(QList<QUrl> urls) { QList<PlayListItem *> items; QListIterator<QUrl> urls_iterator(urls); while (urls_iterator.hasNext()) { items += urlToItems(urls_iterator.next()); } return items; }
void PlayListModel::appendUrls(QList<QUrl> urls) { QProgressDialog progress("Adding files to playlist...", "Cancel", 0, urls.count()); progress.setWindowModality(Qt::ApplicationModal); progress.show(); QList<PlayListItem *> new_items; QListIterator<QUrl> urls_iterator(urls); while (urls_iterator.hasNext()) { QUrl url = urls_iterator.next(); if (url.isLocalFile()) { new_items += urlToItems(url); } progress.setValue(progress.value() + 1); if (progress.wasCanceled()) break; } progress.setValue(urls.count()); appendItems(new_items); }