#ifndef MESSAGEHANDLERMODEL_H #define MESSAGEHANDLERMODEL_H #include class MessageHandlerModel : public QAbstractListModel { Q_OBJECT public: static MessageHandlerModel *self(); enum MsgTypes {Message = Qt::UserRole + 1, Severity}; int rowCount(const QModelIndex& parent = QModelIndex()) const override; QVariant data(const QModelIndex& idx, int role) const override; QHash roleNames() const override; void addLog(QtMsgType type, const QString& message); /* call this to clear the debug data */ Q_INVOKABLE void reset(); private: MessageHandlerModel(QObject *parent = 0); struct MessageData { QString message; QtMsgType type; }; QVector m_data; }; #endif