/
alexashkin
/
telegraph
Обзор
Документация
Войти
/
alexashkin
/
telegraph
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/data/chatfoldersmodel.cpp
51 строка
2 KB
mbarashkov
Пошла жара: переименовываем tdlibwrapper в tdlibresponsehandler
21 фев 2025, 17:15
21 фев 2025, 17:15
7fe5397
Код
Авторство
О чём код?
#include "chatfoldersmodel.h" ChatFoldersModel* ChatFoldersModel::instance; ChatFoldersModel::ChatFoldersModel(TDLibResponseHandler *tdLibWrapper, QObject *parent): QObject(parent) { this->tdLibWrapper = tdLibWrapper; connect(tdLibWrapper, SIGNAL(chatFolders(QVariantList,qlonglong)), this, SLOT(handleChatFolders(QVariantList,qlonglong))); connect(tdLibWrapper, SIGNAL(chatFolder(QVariantMap)), this, SLOT(handleChatFolderInformation(QVariantMap))); ChatFoldersModel::instance = this; } void ChatFoldersModel::handleChatFolders(const QVariantList &foldersInformation, qlonglong mainAllChatFolderPosition) { chatFolders.clear(); int positionIndex = 0; this->mainAllChatFolderPosition = mainAllChatFolderPosition; for (const auto&folder: foldersInformation) { chatFolders.append(new ChatFolderModel(folder.toMap(), ChatFolderModel::Type::Generic, this)); ++positionIndex; } chatFolders.insert(mainAllChatFolderPosition, new ChatFolderModel(mainAllChatFolderPosition, tr("All Chats"), ChatFolderModel::Type::AllChats, this)); auto archivePosition = chatFolders.size(); chatFolders.append(new ChatFolderModel(archivePosition, tr("Archive"), ChatFolderModel::Type::Archive, this)); emit chatFoldersChanged(chatFolders); } void ChatFoldersModel::handleChatFolderInformation(const QVariantMap &chatFolderInformation) { QString name = chatFolderInformation.value("name").toMap().value("text").toMap().value("text").toString(); auto folder = findFolder(name); if(folder != Q_NULLPTR) { folder->setProperties(chatFolderInformation); } } ChatFolderModel* ChatFoldersModel::findFolder(QString name) { if(name == Q_NULLPTR) { return Q_NULLPTR; } for(int i = 0; i < chatFolders.size(); i++) { auto chatFolder = (ChatFolderModel*)chatFolders[i]; if(chatFolder->getName() == name) { return chatFolder; } } return Q_NULLPTR; }