MCPcopy Create free account
hub / github.com/Palm1r/QodeAssist / deserializeChat

Method deserializeChat

ChatView/ChatSerializer.cpp:191–228  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

189}
190
191bool ChatSerializer::deserializeChat(
192 ChatModel *model, const QJsonObject &json, const QString &chatFilePath)
193{
194 QJsonArray messagesArray = json["messages"].toArray();
195 QVector<ChatModel::Message> messages;
196 messages.reserve(messagesArray.size());
197
198 for (const auto &messageValue : messagesArray) {
199 messages.append(deserializeMessage(messageValue.toObject(), chatFilePath));
200 }
201
202 model->clear();
203
204 model->setLoadingFromHistory(true);
205
206 for (const auto &message : messages) {
207 model->addMessage(
208 message.content,
209 message.role,
210 message.id,
211 message.attachments,
212 message.images,
213 message.isRedacted,
214 message.signature);
215 if (message.role == ChatModel::ChatRole::Tool) {
216 model->setToolMessageData(
217 message.id, message.toolName, message.toolArguments, message.toolResult);
218 }
219 LOG_MESSAGE(QString("Loaded message with %1 image(s), isRedacted=%2, signature length=%3")
220 .arg(message.images.size())
221 .arg(message.isRedacted)
222 .arg(message.signature.length()));
223 }
224
225 model->setLoadingFromHistory(false);
226
227 return true;
228}
229
230bool ChatSerializer::ensureDirectoryExists(const QString &filePath)
231{

Callers

nothing calls this directly

Calls 6

sizeMethod · 0.80
appendMethod · 0.80
setLoadingFromHistoryMethod · 0.80
addMessageMethod · 0.80
setToolMessageDataMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected