/
erhoof
/
telegraf
Обзор
Документация
Войти
/
erhoof
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/data/chatlistsortedmodel.h
39 строк
1 KB
mbarashkov
Закончена переработка закрепления чатов (можно ускорить отображение в UI следующим этапом, в разных папках)
19 апр 2025, 17:06
19 апр 2025, 17:06
2a2d948
Код
Авторство
О чём код?
#pragma once #include <QSortFilterProxyModel> #include "chatfolderid.h" #include "chatfoldermodel.h" class ChatListSortedModel : public QSortFilterProxyModel { Q_OBJECT Q_PROPERTY(QObject* sourceModel READ sourceModel WRITE setSource NOTIFY sourceChanged) public: explicit ChatListSortedModel(QObject *parent = Q_NULLPTR); Q_INVOKABLE void sortNow() { sort(0, Qt::DescendingOrder); } void setSource(QObject* model); void setSourceModel(QAbstractItemModel *model) Q_DECL_OVERRIDE; Q_INVOKABLE bool isPinnedChat(const ChatFolderId::Type folderType, const qlonglong folderId, qlonglong chatId) const; Q_INVOKABLE qlonglong unreadCount(const ChatFolderId::Type type, const qlonglong id) const; Q_INVOKABLE void selectChatFolder(ChatFolderId::Type type, qlonglong id) { chatFolderId = new ChatFolderId(type, id, this); invalidate(); } signals: void sourceChanged(); protected: bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const Q_DECL_OVERRIDE; bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const Q_DECL_OVERRIDE; bool internalFilterRow(const ChatFolderModel* folder, const QModelIndex index) const; private: ChatFolderId* chatFolderId; ChatFolderModel* getChatFolder() const; };