void DownloadManager::addItem(const QUrl& url, QString filename, bool done)
{
    DownloadItem *item = new DownloadItem(0, false, this);

    item->m_output.setFileName(filename);
    item->setOutputTitle();

    item->m_url = url;
    item->stopButton->setVisible(false);
    item->stopButton->setEnabled(false);
    item->tryAgainButton->setVisible(!done);
    item->tryAgainButton->setEnabled(!done);
    item->progressBar->setVisible(!done);
    if (QFile::exists(filename))
    {
        QFile f(filename);
        if (f.open(QIODevice::ReadOnly ))
        {
            QFileInfo fi( f );
            item->setSizeDate(f.size(), fi.lastModified());

            f.close();
        }
    }
    addItem(item);

    if (!m_iconProvider)
        m_iconProvider = new QFileIconProvider();
    QIcon icon = m_iconProvider->icon(QDir::toNativeSeparators(item->m_output.fileName()));
    if (icon.isNull())
        icon = style()->standardIcon(QStyle::SP_FileIcon);
    item->fileIcon->setPixmap(icon.pixmap(48, 48));

    cleanupButton->setEnabled(m_downloads.count() - activeDownloads() > 0);
}