summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-03-27 02:03:14 +0100
committerPetr Mrázek <peterix@gmail.com>2015-03-27 02:03:14 +0100
commiteae544f0ebc26a2b103091b93d4f7c4188d00cff (patch)
treef8aa03bd0cdc877d87e674a93141facff939767e
parent2eb3ec39bfd13e4bcc29655ea41326b4462d938d (diff)
downloadMultiMC-eae544f0ebc26a2b103091b93d4f7c4188d00cff.tar
MultiMC-eae544f0ebc26a2b103091b93d4f7c4188d00cff.tar.gz
MultiMC-eae544f0ebc26a2b103091b93d4f7c4188d00cff.tar.lz
MultiMC-eae544f0ebc26a2b103091b93d4f7c4188d00cff.tar.xz
MultiMC-eae544f0ebc26a2b103091b93d4f7c4188d00cff.zip
GH-841 fix for modpack downloads on windows
-rw-r--r--gui/MainWindow.cpp3
-rw-r--r--logic/net/NetJob.cpp3
-rw-r--r--logic/net/NetJob.h2
3 files changed, 5 insertions, 3 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index 0231dd44..b28d2d9b 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -1075,12 +1075,13 @@ void MainWindow::on_actionAddInstance_triggered()
}
else
{
- const QString path = modpackUrl.host() + '/' + QString::fromUtf8(modpackUrl.toEncoded());
+ const QString path = modpackUrl.host() + '/' + modpackUrl.path();
auto entry = MMC->metacache()->resolveEntry("general", path);
CacheDownloadPtr dl = CacheDownload::make(modpackUrl, entry);
NetJob job(tr("Modpack download"));
job.addNetAction(dl);
+ // FIXME: possibly causes endless loop problems
ProgressDialog dlDialog(this);
if (dlDialog.exec(&job) != QDialog::Accepted)
{
diff --git a/logic/net/NetJob.cpp b/logic/net/NetJob.cpp
index 6d10db48..85892581 100644
--- a/logic/net/NetJob.cpp
+++ b/logic/net/NetJob.cpp
@@ -73,7 +73,8 @@ void NetJob::start()
{
m_todo.enqueue(i);
}
- startMoreParts();
+ // hack that delays early failures so they can be caught easier
+ QMetaObject::invokeMethod(this, "startMoreParts", Qt::QueuedConnection);
}
void NetJob::startMoreParts()
diff --git a/logic/net/NetJob.h b/logic/net/NetJob.h
index 30ae609a..0d8b7fbd 100644
--- a/logic/net/NetJob.h
+++ b/logic/net/NetJob.h
@@ -83,7 +83,7 @@ public:
}
QStringList getFailedFiles();
-private:
+private slots:
void startMoreParts();
signals: