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

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QPointer>
0010 #include <QWidget>
0011 
0012 #include "libruqolawidgets_private_export.h"
0013 class QListView;
0014 class QLineEdit;
0015 class Room;
0016 class UsersInRoomMenu;
0017 class QLabel;
0018 class UsersForRoomFilterProxyModel;
0019 class UsersInRoomComboBox;
0020 class RocketChatAccount;
0021 class LIBRUQOLAWIDGETS_TESTS_EXPORT UsersInRoomWidget : public QWidget
0022 {
0023     Q_OBJECT
0024 public:
0025     explicit UsersInRoomWidget(RocketChatAccount *account, QWidget *parent = nullptr);
0026     ~UsersInRoomWidget() override;
0027     void setRoom(Room *room);
0028 
0029 private:
0030     LIBRUQOLAWIDGETS_NO_EXPORT void updateLabel();
0031     LIBRUQOLAWIDGETS_NO_EXPORT void slotTextChanged(const QString &str);
0032     LIBRUQOLAWIDGETS_NO_EXPORT void slotCustomContextMenuRequested(const QPoint &pos);
0033     [[nodiscard]] LIBRUQOLAWIDGETS_NO_EXPORT QString displayShowMessageInRoom() const;
0034     LIBRUQOLAWIDGETS_NO_EXPORT void loadMoreUsers();
0035     LIBRUQOLAWIDGETS_NO_EXPORT void slotChangeStatusType(int index);
0036     LIBRUQOLAWIDGETS_NO_EXPORT void slotShowUserInfo(const QModelIndex &index);
0037     QListView *const mListView;
0038     QLineEdit *const mSearchLineEdit;
0039     QPointer<Room> mRoom;
0040     UsersInRoomMenu *mMenu = nullptr;
0041     QLabel *const mMessageListInfo;
0042     UsersForRoomFilterProxyModel *const mUsersForRoomFilterProxy;
0043     UsersInRoomComboBox *const mUsersInRoomComboBox;
0044     RocketChatAccount *const mRocketChatAccount;
0045 };