File indexing completed on 2023-11-26 08:17:49
0001 /* 0002 SPDX-FileCopyrightText: 2018-2023 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "libruqolacore_export.h" 0010 #include <QDebug> 0011 // TODO rename it 0012 class LIBRUQOLACORE_EXPORT Channel 0013 { 0014 Q_GADGET 0015 public: 0016 enum ChannelType { 0017 Room, 0018 DirectChannel, 0019 Unknown, 0020 }; 0021 Q_ENUM(ChannelType) 0022 0023 Channel(); 0024 ~Channel(); 0025 void parseChannel(const QJsonObject &object, Channel::ChannelType); 0026 0027 [[nodiscard]] ChannelType type() const; 0028 void setType(Channel::ChannelType type); 0029 0030 [[nodiscard]] bool operator==(const Channel &other) const; 0031 0032 Channel &operator=(const Channel &other) = default; 0033 0034 [[nodiscard]] QString roomId() const; 0035 void setRoomId(const QString &roomId); 0036 0037 [[nodiscard]] QString roomName() const; 0038 void setRoomName(const QString &roomName); 0039 0040 [[nodiscard]] QString roomType() const; 0041 void setRoomType(const QString &roomType); 0042 0043 [[nodiscard]] QString userId() const; 0044 void setUserId(const QString &userId); 0045 0046 [[nodiscard]] QString name() const; 0047 void setName(const QString &name); 0048 0049 [[nodiscard]] QString status() const; 0050 void setStatus(const QString &status); 0051 0052 [[nodiscard]] QString userName() const; 0053 void setUserName(const QString &userName); 0054 0055 [[nodiscard]] QString iconFromStatus() const; 0056 0057 private: 0058 QString mRoomId; 0059 QString mRoomName; 0060 QString mRoomType; 0061 0062 // Private Channel 0063 QString mUserId; 0064 QString mName; 0065 QString mStatus; 0066 QString mUserName; 0067 ChannelType mType = ChannelType::Unknown; 0068 }; 0069 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0070 Q_DECLARE_METATYPE(Channel) 0071 #endif 0072 Q_DECLARE_TYPEINFO(Channel, Q_MOVABLE_TYPE); 0073 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const Channel &t);