File indexing completed on 2024-12-01 04:35:32

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 "customemoji.h"
0010 #include "libruqolacore_export.h"
0011 #include <QDebug>
0012 #include <QVector>
0013 class LIBRUQOLACORE_EXPORT CustomEmojisInfo
0014 {
0015 public:
0016     CustomEmojisInfo();
0017 
0018     [[nodiscard]] bool isEmpty() const;
0019     void clear();
0020     [[nodiscard]] int count() const;
0021     [[nodiscard]] CustomEmoji at(int index) const;
0022 
0023     [[nodiscard]] int offset() const;
0024     void setOffset(int offset);
0025 
0026     [[nodiscard]] int total() const;
0027     void setTotal(int total);
0028 
0029     void parseCustomEmojis(const QJsonObject &obj);
0030     void parseMoreCustomEmojis(const QJsonObject &obj);
0031 
0032     [[nodiscard]] int roomsCount() const;
0033     void setRoomsCount(int adminroomsCount);
0034 
0035     const QVector<CustomEmoji> &customSoundInfos() const;
0036     void setCustomSoundInfos(const QVector<CustomEmoji> &newCustomSoundInfos);
0037 
0038     CustomEmoji takeAt(int index);
0039 
0040 private:
0041     LIBRUQOLACORE_NO_EXPORT void parseListCustomEmoji(const QJsonObject &obj);
0042     QVector<CustomEmoji> mCustomEmojiInfos;
0043     int mRoomsCount = 0;
0044     int mOffset = 0;
0045     int mTotal = 0;
0046 };
0047 
0048 Q_DECLARE_METATYPE(CustomEmojisInfo)
0049 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const CustomEmojisInfo &t);