mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2025-10-05 03:25:12 -04:00
fix: Change behavior of cancel request
*now cancel request cancel all requests
This commit is contained in:
@ -151,18 +151,17 @@ void ClientInterface::clearMessages()
|
||||
|
||||
void ClientInterface::cancelRequest()
|
||||
{
|
||||
auto id = m_chatModel->lastMessageId();
|
||||
|
||||
for (auto it = m_activeRequests.begin(); it != m_activeRequests.end(); ++it) {
|
||||
if (it.value().originalRequest["id"].toString() == id) {
|
||||
const RequestContext &ctx = it.value();
|
||||
const RequestContext &ctx = it.value();
|
||||
if (ctx.provider && ctx.provider->httpClient()) {
|
||||
ctx.provider->httpClient()->cancelRequest(it.key());
|
||||
|
||||
m_activeRequests.erase(it);
|
||||
m_accumulatedResponses.remove(it.key());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
m_activeRequests.clear();
|
||||
m_accumulatedResponses.clear();
|
||||
|
||||
LOG_MESSAGE("All requests cancelled and state cleared");
|
||||
}
|
||||
|
||||
void ClientInterface::handleLLMResponse(
|
||||
|
@ -115,19 +115,16 @@ void LLMClientInterface::sendData(const QByteArray &data)
|
||||
|
||||
void LLMClientInterface::handleCancelRequest(const QJsonObject &request)
|
||||
{
|
||||
QString id = request["id"].toString();
|
||||
|
||||
auto it = m_activeRequests.find(id);
|
||||
if (it != m_activeRequests.end()) {
|
||||
for (auto it = m_activeRequests.begin(); it != m_activeRequests.end(); ++it) {
|
||||
const RequestContext &ctx = it.value();
|
||||
|
||||
ctx.provider->httpClient()->cancelRequest(id);
|
||||
|
||||
m_activeRequests.erase(it);
|
||||
LOG_MESSAGE(QString("Request %1 cancelled successfully").arg(id));
|
||||
} else {
|
||||
LOG_MESSAGE(QString("Request %1 not found").arg(id));
|
||||
if (ctx.provider && ctx.provider->httpClient()) {
|
||||
ctx.provider->httpClient()->cancelRequest(it.key());
|
||||
}
|
||||
}
|
||||
|
||||
m_activeRequests.clear();
|
||||
|
||||
LOG_MESSAGE("All requests cancelled and state cleared");
|
||||
}
|
||||
|
||||
void LLMClientInterface::handleInitialize(const QJsonObject &request)
|
||||
|
@ -126,9 +126,14 @@ QString HttpClient::addActiveRequest(QNetworkReply *reply, const QString &reques
|
||||
void HttpClient::cancelRequest(const QString &requestId)
|
||||
{
|
||||
QMutexLocker locker(&m_mutex);
|
||||
if (auto it = m_activeRequests.find(requestId); it != m_activeRequests.end()) {
|
||||
it.value()->abort();
|
||||
it.value()->deleteLater();
|
||||
auto it = m_activeRequests.find(requestId);
|
||||
if (it != m_activeRequests.end()) {
|
||||
QNetworkReply *reply = it.value();
|
||||
if (reply) {
|
||||
reply->disconnect();
|
||||
reply->abort();
|
||||
reply->deleteLater();
|
||||
}
|
||||
m_activeRequests.erase(it);
|
||||
LOG_MESSAGE(QString("HttpClient: Cancelled request: %1").arg(requestId));
|
||||
}
|
||||
|
Reference in New Issue
Block a user