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{
13/**
14 * @brief The TextAutoGenerateChatModel class
15 * @author Laurent Montel <montel@kde.org>
16 */
17class TEXTAUTOGENERATETEXT_EXPORT TextAutoGenerateChatModel : public QAbstractListModel
18{
20public:
21 enum ChatRoles : uint16_t {
22 MessageRole = Qt::UserRole + 1,
23 SenderRole,
24 FinishedRole,
25 DateTimeRole,
26 DateTimeStrRole,
27 UuidRole,
28 TopicRole,
29 MouseHoverRole,
30 ArchivedRole,
31 EditingRole,
32 };
33
34 explicit TextAutoGenerateChatModel(QObject *parent = nullptr);
35 ~TextAutoGenerateChatModel() override;
36
37 [[nodiscard]] int rowCount(const QModelIndex & = {}) const override;
38 [[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
39 [[nodiscard]] bool setData(const QModelIndex &index, const QVariant &value, int role) override;
40
41 [[nodiscard]] QList<TextAutoGenerateMessage> messages() const;
42 void setMessages(const QList<TextAutoGenerateMessage> &newMessages);
43
44 void resetConversation();
45
46 void addMessage(const TextAutoGenerateMessage &msg);
47
48 void removeDiscussion(const QByteArray &uuid);
49
50 void replaceContent(const QByteArray &uuid, const QString &content);
51 void changeInProgress(const QByteArray &uuid, bool inProgress);
52 [[nodiscard]] QByteArray editMessage(const QByteArray &uuid, const QString &str);
53 [[nodiscard]] QModelIndex indexForUuid(const QByteArray &uuid) const;
54 [[nodiscard]] Qt::ItemFlags flags(const QModelIndex &index) const override;
55 [[nodiscard]] bool cancelRequest(const QModelIndex &index);
57 void conversationCleared();
58
59private:
61};
62}
virtual QModelIndex parent(const QModelIndex &index) const const=0
QAbstractListModel(QObject *parent)
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const override
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS
UserRole
typedef ItemFlags
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.