File indexing completed on 2024-05-12 16:27:16

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "showlistmessagebasedialog.h"
0008 #include "rocketchataccount.h"
0009 #include "room/messagelistview.h"
0010 #include "ruqolawidgets_debug.h"
0011 #include "showlistmessagebasewidget.h"
0012 
0013 #include <QDialogButtonBox>
0014 #include <QVBoxLayout>
0015 
0016 ShowListMessageBaseDialog::ShowListMessageBaseDialog(RocketChatAccount *account, QWidget *parent)
0017     : QDialog(parent)
0018     , mShowListMessage(new ShowListMessageBaseWidget(account, this))
0019     , mRocketChatAccount(account)
0020 {
0021     auto mainLayout = new QVBoxLayout(this);
0022     mainLayout->setObjectName(QStringLiteral("mainLayout"));
0023 
0024     mShowListMessage->setObjectName(QStringLiteral("mShowListMessage"));
0025     mainLayout->addWidget(mShowListMessage);
0026 
0027     auto button = new QDialogButtonBox(QDialogButtonBox::Close, this);
0028     button->setObjectName(QStringLiteral("button"));
0029     mainLayout->addWidget(button);
0030     connect(button, &QDialogButtonBox::rejected, this, &ShowListMessageBaseDialog::reject);
0031     connect(mShowListMessage, &ShowListMessageBaseWidget::loadMoreElements, this, &ShowListMessageBaseDialog::slotLoadMoreMessages);
0032 
0033     connect(mShowListMessage->messageListView(), &MessageListView::goToMessageRequested, this, &ShowListMessageBaseDialog::goToMessageRequested);
0034 }
0035 
0036 ShowListMessageBaseDialog::~ShowListMessageBaseDialog() = default;
0037 
0038 void ShowListMessageBaseDialog::slotLoadMoreMessages()
0039 {
0040     if (mRoomId.isEmpty()) {
0041         qCWarning(RUQOLAWIDGETS_LOG) << "RoomId is empty. It's a bug";
0042         return;
0043     }
0044     mRocketChatAccount->loadMoreListMessages(roomId());
0045 }
0046 
0047 void ShowListMessageBaseDialog::setModel(ListMessagesFilterProxyModel *model)
0048 {
0049     mShowListMessage->setModel(model);
0050 }
0051 
0052 void ShowListMessageBaseDialog::setRoomId(const QString &roomId)
0053 {
0054     mRoomId = roomId;
0055 }
0056 
0057 QString ShowListMessageBaseDialog::roomId() const
0058 {
0059     return mRoomId;
0060 }
0061 
0062 void ShowListMessageBaseDialog::setRoom(Room *room)
0063 {
0064     mShowListMessage->setRoom(room);
0065 }
0066 
0067 #include "moc_showlistmessagebasedialog.cpp"