| 462 | } |
| 463 | |
| 464 | void ChatRootView::dispatchSend( |
| 465 | const QString &message, |
| 466 | const QStringList &attachments, |
| 467 | const QStringList &linkedFiles, |
| 468 | bool useToolsArg, |
| 469 | bool useThinkingArg) |
| 470 | { |
| 471 | if (m_recentFilePath.isEmpty()) { |
| 472 | QString filePath = getAutosaveFilePath(message, attachments); |
| 473 | if (auto registry = sessionFileRegistry()) { |
| 474 | filePath = registry->uniqueFreePath(filePath); |
| 475 | } |
| 476 | if (!filePath.isEmpty()) { |
| 477 | setRecentFilePath(filePath); |
| 478 | LOG_MESSAGE(QString("Set chat file path for new chat: %1").arg(filePath)); |
| 479 | } |
| 480 | } |
| 481 | |
| 482 | m_tokenCounter->recordSent(); |
| 483 | |
| 484 | m_clientInterface->setSkillsManager(skillsManager()); |
| 485 | m_clientInterface->sendMessage(message, attachments, linkedFiles, useToolsArg, useThinkingArg); |
| 486 | |
| 487 | m_fileManager->clearIntermediateStorage(); |
| 488 | clearAttachmentFiles(); |
| 489 | setRequestProgressStatus(true); |
| 490 | } |
| 491 | |
| 492 | void ChatRootView::copyToClipboard(const QString &text) |
| 493 | { |
nothing calls this directly
no test coverage detected