KTextAddons

textautogeneratechatmodel.h
1/*
2 SPDX-FileCopyrightText: 2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8#include "textautogeneratemessage.h"
9#include "textautogeneratetext_export.h"
10#include <QAbstractListModel>
11namespace TextAutogenerateText
12{
13class TEXTAUTOGENERATETEXT_EXPORT TextAutoGenerateChatModel : public QAbstractListModel
14{
15 Q_OBJECT
16public:
17 enum ChatRole : uint16_t {
18 MessageRole = Qt::UserRole + 1,
19 SenderRole,
20 FinishedRole,
21 DateTimeRole,
22 UuidRole,
23 };
24
25 explicit TextAutoGenerateChatModel(QObject *parent = nullptr);
26 ~TextAutoGenerateChatModel() override;
27
28 [[nodiscard]] int rowCount(const QModelIndex & = {}) const override;
29 [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
30
31 [[nodiscard]] QList<TextAutoGenerateMessage> messages() const;
32 void setMessages(const QList<TextAutoGenerateMessage> &newMessages);
33
34 void resetConversation();
35
36 void addMessage(const TextAutoGenerateMessage &msg);
37
38 void replaceLastMessage(const TextAutoGenerateMessage &msg);
39
40 [[nodiscard]] TextAutoGenerateMessage lastMessage() const;
41
42 void removeDiscussion(const QByteArray &uuid);
43
44Q_SIGNALS:
45 void conversationCleared();
46
47private:
48 QList<TextAutoGenerateMessage> mMessages;
49};
50}
UserRole
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.