/
lmaxyz
/
telegraf
Обзор
Документация
Войти
/
lmaxyz
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/data/knownusersmodel.cpp
47 строк
2 KB
mbarashkov
Упрощен код верификации групп после изменений с серверной стороны
26 июн 2025, 11:29
26 июн 2025, 11:29
c3e6f4c
Код
Авторство
О чём код?
#include "knownusersmodel.h" KnownUsersModel::KnownUsersModel(QObject *parent) : QAbstractListModel(parent) { connect(TDLibResponseHandler::getInstance(), SIGNAL(userUpdated(qlonglong,QVariantMap)), this, SLOT(handleUserUpdated(qlonglong,QVariantMap))); } QHash<int, QByteArray> KnownUsersModel::roleNames() const { QHash<int,QByteArray> roles; roles.insert(KnownUserRole::RoleDisplay, "display"); roles.insert(KnownUserRole::RoleUserId, "user_id"); roles.insert(KnownUserRole::RoleTitle, "title"); roles.insert(KnownUserRole::RoleUsername, "user_name"); roles.insert(KnownUserRole::RoleUserHandle, "user_handle"); roles.insert(KnownUserRole::RolePhotoSmall, "photo_small"); roles.insert(KnownUserRole::RoleFilter, "filter"); return roles; } int KnownUsersModel::rowCount(const QModelIndex &) const { return this->knownUsers.size(); } QVariant KnownUsersModel::data(const QModelIndex &index, int role) const { if (index.isValid()) { QVariantMap requestedUser = knownUsers.values().value(index.row()).toMap(); switch (static_cast<KnownUserRole>(role)) { case KnownUserRole::RoleDisplay: return requestedUser; case KnownUserRole::RoleUserId: return requestedUser.value("id"); case KnownUserRole::RoleTitle: return QString(requestedUser.value("first_name").toString() + " " + requestedUser.value("last_name").toString()).trimmed(); case KnownUserRole::RoleUsername: return requestedUser.value("usernames").toMap().value("editable_username").toString(); case KnownUserRole::RoleUserHandle: return QString("@" + (requestedUser.value("usernames").toMap().value("editable_username").toString().isEmpty() ? requestedUser.value("id").toString() : requestedUser.value("usernames").toMap().value("editable_username").toString())); case KnownUserRole::RolePhotoSmall: return requestedUser.value("profile_photo").toMap().value("small"); case KnownUserRole::RoleFilter: return QString(requestedUser.value("first_name").toString() + " " + requestedUser.value("last_name").toString() + " " + requestedUser.value("usernames").toMap().value("editable_username").toString()).trimmed(); } } return QVariant(); } void KnownUsersModel::handleUserUpdated(const qlonglong userId, const QVariantMap &userInformation) { this->knownUsers.insert(QString::number(userId), userInformation); }