Use deleteLater() for Subsonic, Tidal and QObuz requests

This commit is contained in:
Jonas Kvinge
2022-02-06 00:58:50 +01:00
parent 1dd4eb05f2
commit 192fb46d1d
5 changed files with 47 additions and 27 deletions

View File

@@ -19,8 +19,6 @@
#include "config.h"
#include <memory>
#include <QObject>
#include <QDir>
#include <QMimeType>
@@ -63,7 +61,7 @@ SubsonicRequest::SubsonicRequest(SubsonicService *service, SubsonicUrlHandler *u
service_(service),
url_handler_(url_handler),
app_(app),
network_(new QNetworkAccessManager),
network_(new QNetworkAccessManager(this)),
timeouts_(new NetworkTimeouts(30000, this)),
finished_(false),
albums_requests_active_(0),

View File

@@ -22,8 +22,6 @@
#include "config.h"
#include <memory>
#include <QtGlobal>
#include <QObject>
#include <QPair>
@@ -37,12 +35,12 @@
#include <QString>
#include <QStringList>
#include <QUrl>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include "core/song.h"
#include "subsonicbaserequest.h"
class QNetworkAccessManager;
class QNetworkReply;
class Application;
class SubsonicService;
@@ -120,7 +118,7 @@ class SubsonicRequest : public SubsonicBaseRequest {
SubsonicService *service_;
SubsonicUrlHandler *url_handler_;
Application *app_;
std::unique_ptr<QNetworkAccessManager> network_;
QNetworkAccessManager *network_;
NetworkTimeouts *timeouts_;
bool finished_;

View File

@@ -399,7 +399,7 @@ void SubsonicService::Scrobble(const QString &song_id, const bool submission, co
if (!scrobble_request_) {
// We're doing requests every 30-240s the whole time, so keep reusing this instance
scrobble_request_ = std::make_shared<SubsonicScrobbleRequest>(this, url_handler_, app_);
scrobble_request_.reset(new SubsonicScrobbleRequest(this, url_handler_, app_), [](SubsonicScrobbleRequest *request) { request->deleteLater(); });
}
scrobble_request_->CreateScrobbleRequest(song_id, submission, time);
@@ -429,7 +429,7 @@ void SubsonicService::GetSongs() {
}
ResetSongsRequest();
songs_request_ = std::make_shared<SubsonicRequest>(this, url_handler_, app_);
songs_request_.reset(new SubsonicRequest(this, url_handler_, app_), [](SubsonicRequest *request) { request->deleteLater(); });
QObject::connect(songs_request_.get(), &SubsonicRequest::Results, this, &SubsonicService::SongsResultsReceived);
QObject::connect(songs_request_.get(), &SubsonicRequest::UpdateStatus, this, &SubsonicService::SongsUpdateStatus);
QObject::connect(songs_request_.get(), &SubsonicRequest::ProgressSetMaximum, this, &SubsonicService::SongsProgressSetMaximum);
@@ -449,6 +449,8 @@ void SubsonicService::SongsResultsReceived(const SongMap &songs, const QString &
emit SongsResults(songs, error);
ResetSongsRequest();
}
void SubsonicService::PingError(const QString &error, const QVariant &debug) {