diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 96a50f2ba..ffa49ee11 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -559,6 +559,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
m_settings->registerSetting("NumberOfConcurrentTasks", 10);
m_settings->registerSetting("NumberOfConcurrentDownloads", 6);
+ m_settings->registerSetting("DownlodTransferTimeout", 60);
QString defaultMonospace;
int defaultSize = 11;
@@ -949,8 +950,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
[[fallthrough]];
default: {
qDebug() << "Exiting because update lockfile is present";
- QMetaObject::invokeMethod(
- this, []() { exit(1); }, Qt::QueuedConnection);
+ QMetaObject::invokeMethod(this, []() { exit(1); }, Qt::QueuedConnection);
return;
}
}
@@ -982,8 +982,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
[[fallthrough]];
default: {
qDebug() << "Exiting because update lockfile is present";
- QMetaObject::invokeMethod(
- this, []() { exit(1); }, Qt::QueuedConnection);
+ QMetaObject::invokeMethod(this, []() { exit(1); }, Qt::QueuedConnection);
return;
}
}
@@ -1671,8 +1670,7 @@ QString Application::getJarPath(QString jarFile)
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
FS::PathCombine(m_rootPath, "share", BuildConfig.LAUNCHER_NAME),
#endif
- FS::PathCombine(m_rootPath, "jars"),
- FS::PathCombine(applicationDirPath(), "jars"),
+ FS::PathCombine(m_rootPath, "jars"), FS::PathCombine(applicationDirPath(), "jars"),
FS::PathCombine(applicationDirPath(), "..", "jars") // from inside build dir, for debuging
};
for (QString p : potentialPaths) {
diff --git a/launcher/net/NetRequest.cpp b/launcher/net/NetRequest.cpp
index abecc0cf3..6ce6a9bfc 100644
--- a/launcher/net/NetRequest.cpp
+++ b/launcher/net/NetRequest.cpp
@@ -106,7 +106,11 @@ void NetRequest::executeTask()
}
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
+#if defined(LAUNCHER_APPLICATION)
+ request.setTransferTimeout(APPLICATION->settings()->get("DownlodTransferTimeout").toInt() * 1000);
+#else
request.setTransferTimeout();
+#endif
#endif
m_last_progress_time = m_clock.now();
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 78c44380a..4b550a0fd 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -191,6 +191,7 @@ void LauncherPage::applySettings()
s->set("NumberOfConcurrentTasks", ui->numberOfConcurrentTasksSpinBox->value());
s->set("NumberOfConcurrentDownloads", ui->numberOfConcurrentDownloadsSpinBox->value());
+ s->set("DownlodTransferTimeout", ui->timeoutSecondsSpinBox->value());
// Console settings
s->set("ShowConsole", ui->showConsoleCheck->isChecked());
@@ -245,6 +246,7 @@ void LauncherPage::loadSettings()
ui->numberOfConcurrentTasksSpinBox->setValue(s->get("NumberOfConcurrentTasks").toInt());
ui->numberOfConcurrentDownloadsSpinBox->setValue(s->get("NumberOfConcurrentDownloads").toInt());
+ ui->timeoutSecondsSpinBox->setValue(s->get("DownlodTransferTimeout").toInt());
// Console settings
ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui
index 928ec8103..20c9d0269 100644
--- a/launcher/ui/pages/global/LauncherPage.ui
+++ b/launcher/ui/pages/global/LauncherPage.ui
@@ -7,7 +7,7 @@
0
0
511
- 629
+ 691
@@ -205,6 +205,13 @@
Miscellaneous
+ -
+
+
+ 1
+
+
+
-
@@ -226,10 +233,20 @@
- -
-
-
- 1
+
-
+
+
+ Seconds to wait until the requests are terminated
+
+
+ Transfer timeout
+
+
+
+ -
+
+
+ s