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