fix(autosend): invio dettatura robusto e visibile (v0.3.1)
L'auto-invio poteva non scattare senza alcun segnale. Cause eliminate:
- il testo viene passato esplicitamente (sendText) invece di rileggerlo
dal campo; il focus tastiera non viene piu' forzato prima dell'invio
- l'opzione vale "on" salvo disattivazione esplicita (undefined -> on)
- ChatModel::send non rifiuta piu' in silenzio: avviso a schermo
("No session open" / "Wait for the current reply") + log [chat]
- log [hermes] sul percorso trascrizione/auto-invio per la diagnosi
dal terminale
This commit is contained in:
+15
-1
@@ -1,5 +1,6 @@
|
||||
#include "chatmodel.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QTimer>
|
||||
|
||||
ChatModel::ChatModel(ApiClient *api, QObject *parent)
|
||||
@@ -81,8 +82,21 @@ void ChatModel::resync()
|
||||
void ChatModel::send(const QString &text)
|
||||
{
|
||||
const QString trimmed = text.trimmed();
|
||||
if (trimmed.isEmpty() || m_sessionId.isEmpty() || m_busy)
|
||||
if (trimmed.isEmpty())
|
||||
return;
|
||||
// Rifiuti VISIBILI: prima erano silenziosi, e l'invio automatico poteva
|
||||
// "non fare nulla" senza che si capisse il perché.
|
||||
if (m_sessionId.isEmpty()) {
|
||||
qDebug() << "[chat] send rifiutato: nessuna sessione aperta";
|
||||
emit notice(QStringLiteral("No session open"));
|
||||
return;
|
||||
}
|
||||
if (m_busy) {
|
||||
qDebug() << "[chat] send rifiutato: un turno e' gia' in corso";
|
||||
emit notice(QStringLiteral("Wait for the current reply"));
|
||||
return;
|
||||
}
|
||||
qDebug() << "[chat] invio:" << trimmed.size() << "caratteri";
|
||||
m_finalizedThisRun = false;
|
||||
appendMessage(QStringLiteral("user"), trimmed, false);
|
||||
beginAssistant();
|
||||
|
||||
Reference in New Issue
Block a user