KTextAddons

textautogeneratetextplugin.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#include "textautogeneratetextplugin.h"
8#include "core/textautogeneratechatmodel.h"
9#include "core/textautogeneratemanager.h"
10#include "core/textautogeneratemessage.h"
11#include "textautogeneratetextcore_debug.h"
12
13#include <QDateTime>
14#include <QUuid>
15
16using namespace TextAutogenerateText;
17
18class TextAutogenerateText::TextAutogenerateTextPluginPrivate
19{
20public:
21 bool hasError = false;
22 bool isReady = false;
23};
24
25TextAutogenerateTextPlugin::TextAutogenerateTextPlugin(QObject *parent)
26 : QObject{parent}
27 , d(new TextAutogenerateText::TextAutogenerateTextPluginPrivate)
28{
29}
30
31TextAutogenerateTextPlugin::~TextAutogenerateTextPlugin() = default;
32
33void TextAutogenerateTextPlugin::setHasError(bool error)
34{
35 d->hasError = error;
36}
37
38bool TextAutogenerateTextPlugin::ready() const
39{
40 return d->isReady;
41}
42
43void TextAutogenerateTextPlugin::setReady(bool newReady)
44{
45 d->isReady = newReady;
46}
47
48void TextAutogenerateTextPlugin::editMessage(const QByteArray &uuid, const QString &str)
49{
50 if (ready()) {
51 const QByteArray llmUuid = TextAutogenerateManager::self()->textAutoGenerateChatModel()->editMessage(uuid, str);
52 sendToLLM(str, llmUuid);
53 }
54}
55
56void TextAutogenerateTextPlugin::sendMessage(const QString &str)
57{
58 if (ready()) {
59 // User Message
60 TextAutoGenerateMessage msg;
61 msg.setSender(TextAutoGenerateMessage::Sender::User);
62 msg.setContent(str);
63 msg.setDateTime(QDateTime::currentSecsSinceEpoch());
64 msg.setUuid(QUuid::createUuid().toByteArray(QUuid::Id128));
65
66 // LLM Message
67 TextAutoGenerateMessage msgLlm;
68 msgLlm.setInProgress(true);
69 msgLlm.setSender(TextAutoGenerateMessage::Sender::LLM);
70 msgLlm.setDateTime(QDateTime::currentSecsSinceEpoch());
71 msgLlm.setUuid(QUuid::createUuid().toByteArray(QUuid::Id128));
72
73 const QByteArray llmUuid = msgLlm.uuid();
74 msg.setAnswerUuid(llmUuid);
75
76 TextAutogenerateManager::self()->textAutoGenerateChatModel()->addMessage(std::move(msg));
77 TextAutogenerateManager::self()->textAutoGenerateChatModel()->addMessage(std::move(msgLlm));
78 sendToLLM(str, llmUuid);
79 } else {
80 qCWarning(TEXTAUTOGENERATETEXT_CORE_LOG) << "Plugin is not valid:";
81 }
82}
83
84#include "moc_textautogeneratetextplugin.cpp"
void error(QWidget *parent, const QString &text, const QString &title, const KGuiItem &buttonOk, Options options=Notify)
qint64 currentSecsSinceEpoch()
QUuid createUuid()
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri May 2 2025 12:06:03 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.