示例#1
0
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);
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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);
}