3#include <QLoggingCategory>
8#include "FrmDownloadManager.h"
10static Q_LOGGING_CATEGORY(log,
"WebBrowser.Download.Manager")
17 setWindowTitle(tr(
"Download manager"));
18 auto layout =
new QVBoxLayout(
this);
20 auto scroll =
new QScrollArea(
this);
21 scroll->setWidgetResizable(
true);
22 layout->addWidget(scroll);
23 QWidget *pWin =
new QWidget(
this);
24 scroll->setWidget(pWin);
25 m_pItems =
new QVBoxLayout(
this);
26 pWin->setLayout (m_pItems);
27 m_pItems->addSpacerItem(
new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding));
31CFrmDownloadManager::~CFrmDownloadManager()
33 qDebug(log) << Q_FUNC_INFO;
36void CFrmDownloadManager::slotDownloadRequested(QWebEngineDownloadRequest *download)
38 Q_ASSERT(download && download->state() == QWebEngineDownloadRequest::DownloadRequested);
39#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
40 download->setDownloadDirectory(m_pPara->GetDownloadFolder());
41 qDebug(log) <<
"slotDownloadRequested:" << download->downloadDirectory() << download->downloadFileName() << download->url();
43 QFileInfo fi(download->path());
44 download->setPath(m_pPara->GetDownloadFolder() + QDir::separator() + fi.fileName());
45 qDebug(log) <<
"slotDownloadRequested:" << download->path() << download->url();
54 if(!item || !m_pItems)
return;
55 bool check = connect(item, &CFrmDownload::sigRemoveClicked,
this, &CFrmDownloadManager::Remove);
57 check = connect(item, &CFrmDownload::sigSelected,
this, &CFrmDownloadManager::slotSelected);
59 m_pItems->insertWidget(0, item, 0, Qt::AlignTop);
65 if(!item || !m_pItems)
return;
66 m_pItems->removeWidget(item);
71void CFrmDownloadManager::slotSelected(
CFrmDownload *item)
73 for(
int i = 0; i < m_pItems->count(); i++)
75 auto it = m_pItems->itemAt(i);
77 auto w = it->widget();
80 item->setFrameShadow(QFrame::Sunken);
83 item->setFrameShadow(QFrame::Raised);
86void CFrmDownloadManager::showEvent(QShowEvent *event)
88 emit sigVisible(
true);
91void CFrmDownloadManager::hideEvent(QHideEvent *event)
93 emit sigVisible(
false);