/
erhoof
/
telegraf
Обзор
Документация
Войти
/
erhoof
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/data/tdlibdatarepository.h
50 строк
2 KB
mbarashkov
Рефакторинг зависимостей qml
04 июн 2025, 15:27
04 июн 2025, 15:27
d215b57
Код
Авторство
О чём код?
#pragma once #include <QObject> #include <QQmlEngine> #include <QMap> #include <QVariantMap> class TDLibDataRepository : public QObject { Q_OBJECT public: static QObject* getSingleton(QQmlEngine*, QJSEngine*) { return instance; } explicit TDLibDataRepository(QObject *parent = nullptr); static TDLibDataRepository* getInstance() { return instance; } void putUser(const qlonglong userId, const QVariantMap &userInformation); Q_INVOKABLE QVariantMap getUserById(const qlonglong userId) const; QVariantMap getUserByName(const QString &name) const; Q_INVOKABLE bool containsUserById(const qlonglong userId) const; void putChat(const QVariantMap &chatInformation); Q_INVOKABLE QVariantMap getChat(const qlonglong chatId) const; bool containsUserNameById(const qlonglong userId) const; Q_INVOKABLE QString getUserName(const qlonglong userId); void putUserName(const qlonglong userId, const QString userName); void clear(); QVariantMap getSecretChat(const qlonglong chatId) const { return secretChats.value(chatId); }; void putSecretChat(qlonglong secretChatId, const QVariantMap &secretChat) { secretChats.insert(secretChatId, secretChat); }; void updateActiveEmojiReactions(const QStringList &emojis); Q_INVOKABLE QStringList getChatReactions(const qlonglong chatId) const; signals: void reactionsUpdated(); private: QMap<qlonglong, QVariantMap> usersById; QMap<QString, QVariantMap> usersByName; QMap<qlonglong, QVariantMap> chatById; QMap<qlonglong, QString> userNamesById; QMap<qlonglong, QVariantMap> secretChats; QStringList activeEmojiReactions; static TDLibDataRepository* instance; };