Page MenuHomePhorge

matrix-room-list.hpp
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

matrix-room-list.hpp

/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2020 Tusooa Zhu <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
#include <libkazv-config.hpp>
#include <immer/config.hpp> // https://github.com/arximboldi/immer/issues/168
#include <QObject>
#include <QQmlEngine>
#include <QAbstractListModel>
#include <lager/sensor.hpp>
#include <lager/extra/qt.hpp>
#include <client/client.hpp>
class MatrixRoom;
class MatrixRoomList : public QAbstractListModel
{
Q_OBJECT
QML_ELEMENT
QML_UNCREATABLE("")
Kazv::Client m_client;
QString m_tagId;
lager::sensor<std::string> m_tagIdCursor;
int m_internalCount;
lager::reader<immer::flex_vector<std::string>> m_roomIds;
public:
explicit MatrixRoomList(Kazv::Client client, QString tagId = QString(), QObject *parent = 0);
~MatrixRoomList() override;
Q_INVOKABLE void setTagId(QString tagId);
LAGER_QT_READER(int, count);
LAGER_QT_READER(QStringList, roomIds);
Q_INVOKABLE MatrixRoom *at(int index) const;
Q_INVOKABLE QString roomIdAt(int index) const;
Q_INVOKABLE MatrixRoom *room(QString roomId) const;
QVariant data(const QModelIndex &index, int role) const override;
int rowCount(const QModelIndex &parent) const override;
private Q_SLOTS:
void updateInternalCount();
};

File Metadata

Mime Type
text/x-c++
Expires
Tue, Jun 24, 6:50 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
234552
Default Alt Text
matrix-room-list.hpp (1 KB)

Event Timeline