4#include <QLoggingCategory>
9#include "FrmDownloadManager.h"
11static Q_LOGGING_CATEGORY(log,
"WebBrowser.Download.Manager")
18 setWindowTitle(tr(
"Download manager"));
19 auto layout =
new QVBoxLayout(
this);
21 auto scroll =
new QScrollArea(
this);
22 scroll->setWidgetResizable(
true);
23 layout->addWidget(scroll);
24 QWidget *pWin =
new QWidget(scroll);
25 scroll->setWidget(pWin);
26 m_pItems =
new QVBoxLayout(pWin);
27 pWin->setLayout (m_pItems);
28 m_pItems->addSpacerItem(
new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding));
32CFrmDownloadManager::~CFrmDownloadManager()
34 qDebug(log) << Q_FUNC_INFO;
37void CFrmDownloadManager::slotDownloadRequested(QWebEngineDownloadRequest *download)
39 qDebug(log) << Q_FUNC_INFO;
40 Q_ASSERT(download && download->state() == QWebEngineDownloadRequest::DownloadRequested);
42 szPath = m_pPara->GetDownloadFolder();
43 if(m_pPara->GetShowDownloadLocation()) {
44 szPath = QFileDialog::getExistingDirectory(
this, tr(
"Save as ......"), szPath);
49#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
50 download->setDownloadDirectory(szPath);
51 qDebug(log) <<
"slotDownloadRequested:" << download->downloadDirectory() << download->downloadFileName() << download->url();
53 QFileInfo fi(download->path());
54 download->setPath(szPath + QDir::separator() + fi.fileName());
55 qDebug(log) <<
"slotDownloadRequested:" << download->path() << download->url();
60 if(m_pPara->GetShowDownloadManager()) {
69 if(!item || !m_pItems)
return;
70 bool check = connect(item, &CFrmDownload::sigRemoveClicked,
this, &CFrmDownloadManager::Remove);
72 check = connect(item, &CFrmDownload::sigSelected,
this, &CFrmDownloadManager::slotSelected);
74 m_pItems->insertWidget(0, item, 0, Qt::AlignTop);
80 if(!item || !m_pItems)
return;
81 m_pItems->removeWidget(item);
86void CFrmDownloadManager::slotSelected(
CFrmDownload *item)
88 for(
int i = 0; i < m_pItems->count(); i++)
90 auto it = m_pItems->itemAt(i);
92 auto w = it->widget();
95 item->setFrameShadow(QFrame::Sunken);
98 item->setFrameShadow(QFrame::Raised);
101void CFrmDownloadManager::showEvent(QShowEvent *event)
103 emit sigVisible(
true);
106void CFrmDownloadManager::hideEvent(QHideEvent *event)
108 emit sigVisible(
false);