aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/net/NetJob.cpp6
-rw-r--r--launcher/net/NetJob.h14
-rw-r--r--launcher/ui/pages/instance/ScreenshotsPage.cpp4
3 files changed, 15 insertions, 9 deletions
diff --git a/launcher/net/NetJob.cpp b/launcher/net/NetJob.cpp
index 9bad89ed..b190b3e9 100644
--- a/launcher/net/NetJob.cpp
+++ b/launcher/net/NetJob.cpp
@@ -98,6 +98,12 @@ void NetJob::partProgress(int index, qint64 bytesReceived, qint64 bytesTotal)
void NetJob::executeTask()
{
+ if(!m_network) {
+ qCritical() << "Attempted to start NetJob" << objectName() << "without the network set!";
+ emitFailed(tr("Internal error: NetJob '%1' has been started without a network pointer!").arg(objectName()));
+ return;
+ }
+
// hack that delays early failures so they can be caught easier
QMetaObject::invokeMethod(this, "startMoreParts", Qt::QueuedConnection);
}
diff --git a/launcher/net/NetJob.h b/launcher/net/NetJob.h
index 45b9bc0f..06b23306 100644
--- a/launcher/net/NetJob.h
+++ b/launcher/net/NetJob.h
@@ -35,6 +35,11 @@ public:
}
virtual ~NetJob();
+ void setNetwork(shared_qobject_ptr<QNetworkAccessManager> network)
+ {
+ m_network = network;
+ }
+
bool addNetAction(NetAction::Ptr action);
NetAction::Ptr operator[](int index)
@@ -67,15 +72,6 @@ public slots:
virtual bool abort() override;
virtual void start(shared_qobject_ptr<QNetworkAccessManager> network) {
m_network = network;
- start();
- }
-
-protected slots:
- void start() override {
- if(!m_network) {
- throw "Missing network while trying to start " + objectName();
- return;
- }
Task::start();
}
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp
index 06c4379f..3fcc61fa 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp
@@ -314,6 +314,8 @@ void ScreenshotsPage::on_actionUpload_triggered()
m_uploadActive = true;
ProgressDialog dialog(this);
+
+ job->setNetwork(APPLICATION->network());
if(dialog.execWithTask(job.get()) != QDialog::Accepted)
{
CustomMessageBox::selectable(this, tr("Failed to upload screenshots!"),
@@ -348,7 +350,9 @@ void ScreenshotsPage::on_actionUpload_triggered()
auto albumTask = NetJob::Ptr(new NetJob("Imgur Album Creation"));
auto imgurAlbum = ImgurAlbumCreation::make(uploaded);
albumTask->addNetAction(imgurAlbum);
+ job->setNetwork(APPLICATION->network());
task.addTask(job);
+ albumTask->setNetwork(APPLICATION->network());
task.addTask(albumTask);
m_uploadActive = true;
ProgressDialog prog(this);