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); }