mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-07-18 03:22:20 +08:00
fix: 修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
MainWindow::notify 中焦点判断异常,未去除 QStyleSheetStyle 导致错误认为需要隐藏下载管理对话框 Log: 判断 focusIn 事件前排除 QStyleSheetStyle 对象
This commit is contained in:
parent
0001df153b
commit
4825417de8
@ -1,9 +1,7 @@
|
||||
#include "downloadworker.h"
|
||||
|
||||
#include <QEventLoop>
|
||||
#include <QProcess>
|
||||
#include <QRegularExpression>
|
||||
#include <QDir>
|
||||
#include <QtConcurrent>
|
||||
#include <QStandardPaths>
|
||||
|
||||
|
@ -2,9 +2,7 @@
|
||||
#define DOWNLOADWORKER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
#include <QFile>
|
||||
#include <QNetworkReply>
|
||||
#include <QVector>
|
||||
|
||||
class DownloadController : public QObject
|
||||
{
|
||||
@ -19,23 +17,19 @@ public:
|
||||
qint64 getFileSize(const QString& url);
|
||||
QString replaceDomain(const QString& url, const QString domain);
|
||||
|
||||
signals:
|
||||
void errorOccur(const QString& msg);
|
||||
void downloadProcess(QString, qint64, qint64);
|
||||
void downloadFinished();
|
||||
|
||||
private:
|
||||
int threadNum;
|
||||
qint64 pidNumber = -1;
|
||||
QString filename;
|
||||
qint64 fileSize;
|
||||
QVector<QPair<qint64, qint64>> ranges;
|
||||
QFile *file;
|
||||
bool finished = false;
|
||||
QVector<QString> domains;
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
void errorOccur(const QString& msg);
|
||||
void downloadProcess(QString, qint64, qint64);
|
||||
void downloadFinished();
|
||||
|
||||
};
|
||||
|
||||
#endif // FILEDOWNLOADWORKER_H
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "utils/widgetanimation.h"
|
||||
#include "widgets/common/progressbutton.h"
|
||||
#include "widgets/downloadlistwidget.h"
|
||||
#include "widgets/common/downloaditem.h"
|
||||
#include "dbus/dbussparkstoreservice.h"
|
||||
#include "application.h"
|
||||
|
||||
@ -10,6 +11,7 @@
|
||||
#include <DWidgetUtil>
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QAbstractButton>
|
||||
#include <QtConcurrent>
|
||||
|
||||
@ -427,7 +429,8 @@ void MainWindow::notify(QObject *receiver, QEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
if (receiver->inherits("QWidgetWindow")) {
|
||||
if (receiver->inherits("QWidgetWindow")
|
||||
|| receiver->inherits("QStyleSheetStyle")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2,8 +2,10 @@
|
||||
#include "ui_appintopage.h"
|
||||
#include "backend/sparkapi.h"
|
||||
#include "widgets/downloadlistwidget.h"
|
||||
#include "widgets/common/downloaditem.h"
|
||||
#include "backend/image_show.h"
|
||||
#include "application.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include <QtConcurrent>
|
||||
#include <QClipboard>
|
||||
|
@ -1,8 +1,6 @@
|
||||
#ifndef APPINTOPAGE_H
|
||||
#define APPINTOPAGE_H
|
||||
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QJsonObject>
|
||||
#include <QUrl>
|
||||
|
@ -1,11 +1,14 @@
|
||||
#include "downloadlistwidget.h"
|
||||
#include "ui_downloadlistwidget.h"
|
||||
#include <QGraphicsOpacityEffect>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QDebug>
|
||||
#include "widgets/common/downloaditem.h"
|
||||
#include "backend/sparkapi.h"
|
||||
#include "backend/downloadworker.h"
|
||||
#include "utils/utils.h"
|
||||
#include "application.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QtConcurrent>
|
||||
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
DownloadListWidget::DownloadListWidget(QWidget *parent) : DBlurEffectWidget(parent),
|
||||
ui(new Ui::DownloadListWidget)
|
||||
@ -118,14 +121,12 @@ void DownloadListWidget::startRequest(QUrl url, QString fileName)
|
||||
isdownload = true;
|
||||
downloaditemlist[allDownload - 1]->free = false;
|
||||
|
||||
|
||||
// 使用懒汉式单例来存储downloadController
|
||||
if (downloadController == nullptr)
|
||||
{
|
||||
downloadController = new DownloadController; // 并发下载,在第一次点击下载按钮的时候才会初始化
|
||||
}
|
||||
|
||||
|
||||
if (downloadController)
|
||||
{
|
||||
downloadController->disconnect();
|
||||
@ -139,7 +140,6 @@ void DownloadListWidget::startRequest(QUrl url, QString fileName)
|
||||
downloadController->startDownload(url.toString());
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* @brief 下载列表完成下载的回调函数
|
||||
* @param
|
||||
@ -178,8 +178,6 @@ void DownloadListWidget::httpFinished() // 完成下载
|
||||
startRequest(urList.at(nowDownload - 1), fileName);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
void DownloadListWidget::updateDataReadProgress(QString speedInfo, qint64 bytesRead, qint64 totalBytes)
|
||||
|
@ -1,20 +1,19 @@
|
||||
#ifndef DOWNLOADLISTWIDGET_H
|
||||
#define DOWNLOADLISTWIDGET_H
|
||||
|
||||
#include <DBlurEffectWidget>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
#include <DBlurEffectWidget>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QDesktopServices>
|
||||
#include "widgets/common/downloaditem.h"
|
||||
#include "backend/sparkapi.h"
|
||||
#include "backend/downloadworker.h"
|
||||
#include "utils/utils.h"
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
namespace Ui {
|
||||
class DownloadListWidget;
|
||||
}
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
class DownloadItem;
|
||||
class DownloadController;
|
||||
class DownloadListWidget : public DBlurEffectWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
Loading…
x
Reference in New Issue
Block a user