Don't block the GUI when reloading via combobox.

pull/520/head
Adam Treat 1 year ago
parent 48837a62fa
commit 21dc522200

@ -25,18 +25,19 @@ Chat::Chat(QObject *parent)
connect(this, &Chat::unloadRequested, m_llmodel, &ChatLLM::unload, Qt::QueuedConnection);
connect(this, &Chat::reloadRequested, m_llmodel, &ChatLLM::reload, Qt::QueuedConnection);
connect(this, &Chat::generateNameRequested, m_llmodel, &ChatLLM::generateName, Qt::QueuedConnection);
connect(this, &Chat::setThreadCountRequested, m_llmodel, &ChatLLM::setThreadCount, Qt::QueuedConnection);
// The following are blocking operations and will block the gui thread, therefore must be fast
// to respond to
connect(this, &Chat::regenerateResponseRequested, m_llmodel, &ChatLLM::regenerateResponse, Qt::BlockingQueuedConnection);
connect(this, &Chat::resetResponseRequested, m_llmodel, &ChatLLM::resetResponse, Qt::BlockingQueuedConnection);
connect(this, &Chat::resetContextRequested, m_llmodel, &ChatLLM::resetContext, Qt::BlockingQueuedConnection);
connect(this, &Chat::setThreadCountRequested, m_llmodel, &ChatLLM::setThreadCount, Qt::QueuedConnection);
}
void Chat::reset()
{
stopGenerating();
qDebug() << "reset blocking";
emit resetContextRequested(); // blocking queued connection
m_id = Network::globalInstance()->generateUniqueId();
emit idChanged();

@ -171,8 +171,8 @@ Window {
onActivated: {
currentChat.stopGenerating()
currentChat.modelName = comboBox.currentText
currentChat.reset();
currentChat.modelName = comboBox.currentText
}
}
}

@ -343,7 +343,8 @@ Drawer {
}
onClicked: {
downloadClicked() }
downloadClicked()
}
}
}
}
Loading…
Cancel
Save