File indexing completed on 2024-02-18 15:43:55

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"