File indexing completed on 2024-09-15 12:31:35
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "threadmessagemodel.h" 0008 0009 #include "listmessages.h" 0010 0011 ThreadMessageModel::ThreadMessageModel(RocketChatAccount *account, QObject *parent) 0012 : MessagesModel(QStringLiteral("no_room"), account, nullptr, parent) 0013 { 0014 } 0015 0016 ThreadMessageModel::~ThreadMessageModel() = default; 0017 0018 QString ThreadMessageModel::threadMessageId() const 0019 { 0020 return mThreadMessageId; 0021 } 0022 0023 void ThreadMessageModel::setThreadMessageId(const QString &threadMessageId) 0024 { 0025 mThreadMessageId = threadMessageId; 0026 } 0027 0028 void ThreadMessageModel::parse(const QJsonObject &obj) 0029 { 0030 ListMessages threadmessages; 0031 threadmessages.parseMessages(obj); 0032 mTotal = threadmessages.total(); 0033 QVector<Message> listMessage = threadmessages.listMessages(); 0034 if (!mPreviewMessage.messageId().isEmpty()) { 0035 listMessage.prepend(mPreviewMessage); 0036 } 0037 addMessages(listMessage); 0038 } 0039 0040 void ThreadMessageModel::parseThreadMessages(const QJsonObject &obj) 0041 { 0042 clear(); 0043 parse(obj); 0044 } 0045 0046 void ThreadMessageModel::loadMoreThreadMessages(const QJsonObject &obj) 0047 { 0048 parse(obj); 0049 } 0050 0051 int ThreadMessageModel::total() const 0052 { 0053 return mTotal; 0054 } 0055 0056 void ThreadMessageModel::setTotal(int total) 0057 { 0058 mTotal = total; 0059 } 0060 0061 void ThreadMessageModel::setPreviewMessage(const Message &message) 0062 { 0063 mPreviewMessage = message; 0064 } 0065 0066 #include "moc_threadmessagemodel.cpp"