File indexing completed on 2024-05-19 05:04:02
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libruqolawidgets_private_export.h" 0010 #include "rooms/saveroomsettingsjob.h" 0011 0012 #include <QWidget> 0013 class QStackedWidget; 0014 class Room; 0015 class ChannelInfoReadOnlyWidget; 0016 class ChannelInfoEditableWidget; 0017 class RocketChatAccount; 0018 class ChannelRolesInfoWidget; 0019 class LIBRUQOLAWIDGETS_TESTS_EXPORT ChannelInfoWidget : public QWidget 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit ChannelInfoWidget(Room *room, RocketChatAccount *account, QWidget *parent = nullptr); 0024 ~ChannelInfoWidget() override; 0025 0026 void updateUiFromPermission(); 0027 0028 [[nodiscard]] RocketChatRestApi::SaveRoomSettingsJob::SaveRoomSettingsInfo saveRoomSettingsInfo() const; 0029 Q_SIGNALS: 0030 void channelDeleted(); 0031 void fnameChanged(const QString &fname); 0032 void roomNameValid(bool valid); 0033 0034 private: 0035 LIBRUQOLAWIDGETS_NO_EXPORT void setRoom(Room *room); 0036 QStackedWidget *const mStackedWidget; 0037 QPointer<Room> mRoom; 0038 ChannelInfoEditableWidget *const mChannelInfoEditableWidget; 0039 ChannelInfoReadOnlyWidget *const mChannelInfoReadOnlyWidget; 0040 ChannelRolesInfoWidget *const mChannelRolesInfoWidget; 0041 };