diff --git a/services/net/NetworkService.cpp b/services/net/NetworkService.cpp index 891e054..8b918dd 100644 --- a/services/net/NetworkService.cpp +++ b/services/net/NetworkService.cpp @@ -1262,6 +1262,14 @@ void NetworkService::getTasks(const QStringList &materialIds) { request.setRawHeader("Authorization", ("Bearer " + accessToken).toUtf8()); QNetworkReply *reply = m_manager->get(request); + // Таймаут 30 сек: если ответ не пришёл, abort reply чтобы m_fetchingTasks не залип + auto *timeoutTimer = new QTimer(this); + timeoutTimer->setSingleShot(true); + connect(timeoutTimer, &QTimer::timeout, reply, [reply]() { reply->abort(); }); + connect(reply, &QNetworkReply::finished, timeoutTimer, &QTimer::stop); + connect(reply, &QNetworkReply::finished, timeoutTimer, &QObject::deleteLater); + timeoutTimer->start(30000); + connect(reply, &QNetworkReply::finished, this, [this, reply]() { m_fetchingTasks = false; reply->deleteLater();