完成发布
This commit is contained in:
@@ -156,28 +156,6 @@ void TCHttpService::apiUpload(const QString &filePath)
|
||||
});
|
||||
}
|
||||
|
||||
void TCHttpService::apiSharePicShare(const QString &fileName, const QString &md5)
|
||||
{
|
||||
|
||||
QString urlStr;
|
||||
if (m_enableSsl)
|
||||
urlStr = "https://" + m_domain + "/api/sharepic";
|
||||
else
|
||||
urlStr = "http://" + m_domain + "/api/sharepic";
|
||||
|
||||
QMap<QString, QString> headers;
|
||||
QMap<QString, QString> body;
|
||||
QMap<QString, QString> params;
|
||||
|
||||
headers.insert("Content-Type", "application/json");
|
||||
|
||||
QString bodyStr = QString("\"%1\":\"%2\",\"%3\":\"%4\",\"%5\":\"%6\",\"%7\":\"%8\"").arg("token").arg(m_token).
|
||||
arg("user").arg(m_userName).arg("md5").arg(md5).arg("filename").arg(fileName);
|
||||
|
||||
params.insert("cmd", "share");
|
||||
|
||||
}
|
||||
|
||||
void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString domain)
|
||||
{
|
||||
this->m_domain = domain;
|
||||
@@ -203,9 +181,11 @@ void TCHttpService::setUploadNum(int nb)
|
||||
|
||||
void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl)
|
||||
{
|
||||
#if 0
|
||||
#if 1
|
||||
QPixmap cachedPixmap;
|
||||
if (QPixmapCache::find(imageUrl.toString(), &cachedPixmap)) {
|
||||
|
||||
|
||||
emit signal_imageDownloaded(requestId, cachedPixmap);
|
||||
return;
|
||||
}
|
||||
@@ -217,7 +197,9 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
}
|
||||
#endif
|
||||
QNetworkRequest request(imageUrl);
|
||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork);
|
||||
QNetworkReply* reply = m_manager.get(request);
|
||||
m_pendingRequests[reply] = requestId;
|
||||
|
||||
connect(reply, &QNetworkReply::finished, [this, reply](){
|
||||
|
||||
@@ -229,6 +211,7 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
cacheImage(reply->url(), pixmap);
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
@@ -236,9 +219,31 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
reply->deleteLater();
|
||||
});
|
||||
m_pendingRequests[reply] = requestId;
|
||||
// connect(reply, &QNetworkReply::finished, [this, reply, imageUrl](){
|
||||
|
||||
// QString requestId = m_pendingRequests.take(reply);
|
||||
|
||||
// if (reply->error() != QNetworkReply::NoError) {
|
||||
// emit signal_downloadFailed(requestId, reply->errorString());
|
||||
// }
|
||||
// else {
|
||||
// QPixmap pixmap;
|
||||
// if (pixmap.loadFromData(reply->readAll())) {
|
||||
// QPixmapCache::insert(imageUrl.toString(), pixmap);
|
||||
// emit signal_imageDownloaded(requestId, pixmap);
|
||||
// }
|
||||
// else {
|
||||
// emit signal_downloadFailed(requestId, "Failed to load image data");
|
||||
// }
|
||||
// }
|
||||
|
||||
// reply->deleteLater();
|
||||
// });
|
||||
// connect(reply, &QNetworkReply::finished, this, &TCHttpService::slot_downloadFinished);
|
||||
|
||||
}
|
||||
|
||||
QUrl TCHttpService::encodeUrl(QString urlStr, QMap<QString, QString> params)
|
||||
@@ -314,6 +319,16 @@ QString TCHttpService::getCacheFilePath(const QUrl &imageUrl)
|
||||
return QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/" + fileName;
|
||||
}
|
||||
|
||||
void TCHttpService::cacheImage(const QUrl &imageUrl, const QPixmap &pixmap)
|
||||
{
|
||||
QPixmapCache::insert(imageUrl.toString(), pixmap);
|
||||
|
||||
QString filePath = getCacheFilePath(imageUrl);
|
||||
pixmap.save(filePath, "PNG");
|
||||
|
||||
cleanOldCacheFiles();
|
||||
}
|
||||
|
||||
TCHttpService::TCHttpService(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
@@ -329,6 +344,7 @@ void TCHttpService::slot_downloadFinished(QNetworkReply *reply)
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
cacheImage(reply->url(), pixmap);
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -41,7 +41,6 @@ public:
|
||||
void apiMd5(const QString& filePath);
|
||||
#endif
|
||||
void apiUpload(const QString& filePath);
|
||||
void apiSharePicShare(const QString& fileName, const QString& md5);
|
||||
void setConfiguration(QString userName, QString firstPwd, QString domain);
|
||||
void setSsl(bool enable);
|
||||
bool getOnlineState();
|
||||
@@ -55,6 +54,7 @@ private:
|
||||
void cleanOldCacheFiles();
|
||||
bool getCachedImage(const QUrl& imageUrl, QPixmap& pixmap);
|
||||
QString getCacheFilePath(const QUrl& imageUrl);
|
||||
void cacheImage(const QUrl& imageUrl, const QPixmap& pixmap);
|
||||
|
||||
signals:
|
||||
void signal_loginSuc();
|
||||
|
||||
Reference in New Issue
Block a user