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/textautogeneratehistorymodel.h"
10#include "core/textautogeneratemanager.h"
11#include "core/textautogeneratemessage.h"
12#include "textautogeneratehistoryinfo.h"
13#include "textautogeneratetextcore_debug.h"
14
15#include <QDateTime>
16#include <QUuid>
17
18using namespace TextAutogenerateText;
19
20class TextAutogenerateText::TextAutogenerateTextPluginPrivate
21{
22public:
23 bool hasError = false;
24 bool isReady = false;
25};
26
27TextAutogenerateTextPlugin::TextAutogenerateTextPlugin(QObject *parent)
28 : QObject{parent}
29 , d(new TextAutogenerateText::TextAutogenerateTextPluginPrivate)
30{
31}
32
33TextAutogenerateTextPlugin::~TextAutogenerateTextPlugin() = default;
34
35void TextAutogenerateTextPlugin::setHasError(bool error)
36{
37 d->hasError = error;
38}
39
40bool TextAutogenerateTextPlugin::ready() const
41{
42 return d->isReady;
43}
44
45void TextAutogenerateTextPlugin::setReady(bool newReady)
46{
47 d->isReady = newReady;
48}
49
50void TextAutogenerateTextPlugin::sendMessage(const QString &str)
51{
52 if (ready()) {
53 // User Message
54 TextAutoGenerateMessage msg;
55 msg.setSender(TextAutoGenerateMessage::Sender::User);
56 msg.setContent(str);
57 msg.setDateTime(QDateTime::currentSecsSinceEpoch());
58 msg.setUuid(QUuid::createUuid().toByteArray(QUuid::Id128));
59
60 // LLM Message
61 TextAutoGenerateMessage msgLlm;
62 msgLlm.setInProgress(true);
63 msgLlm.setSender(TextAutoGenerateMessage::Sender::LLM);
64 msgLlm.setDateTime(QDateTime::currentSecsSinceEpoch());
65 msgLlm.setUuid(QUuid::createUuid().toByteArray(QUuid::Id128));
66
67 msg.setAnswerUuid(msgLlm.uuid());
68 TextAutoGenerateHistoryInfo info;
69 info.setReferenceUuid(msg.uuid());
70 info.setSubject(msg.content());
71 info.setDateTime(msg.dateTime());
72 // TODO add more
73 TextAutogenerateManager::self()->textAutoGenerateHistoryModel()->addInfo(std::move(info));
74
75 TextAutogenerateManager::self()->textAutoGenerateChatModel()->addMessage(std::move(msg));
76 TextAutogenerateManager::self()->textAutoGenerateChatModel()->addMessage(std::move(msgLlm));
77 sendToLLM(str);
78
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 Apr 18 2025 12:00:52 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.