Решил, раз под наркотиками, можно написать одноранговый чат на qt/qml. Вроде как и не первый год на qt, но какого лешего не вызывается метод data()? Для простоты можно представить, что rowCount() возвращает всегда 1, в data() возвращается всегда QVariant().
#pragma once
#include <QAbstractListModel>
#include "jsonpacket.h"
class MessagesModel : public QAbstractListModel
{
Q_OBJECT
public:
MessagesModel();
MessagesModel(const MessagesModel &other);
public:
Q_INVOKABLE virtual QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
Q_INVOKABLE virtual int rowCount(
const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
protected:
QList<MessagePacket> m_messages;
};
Q_DECLARE_METATYPE(MessagesModel)