diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2017-06-05 18:16:12 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-06-11 13:55:41 -0700 |
commit | 0ea6f13891cff45d1da7cb23a5e07a2080827b78 (patch) | |
tree | befb85625f000382fa5263b1cc04911c775cd326 /qt-models/messagehandlermodel.h | |
parent | e7cd1785c420ba797477c8bd272ee02547731048 (diff) | |
download | subsurface-0ea6f13891cff45d1da7cb23a5e07a2080827b78.tar.gz |
Add a messageHandler to take care of qDebug & friends on QML
all qDebug / qCDebug and friends now will be properly
logged into developer -> log, on QML.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models/messagehandlermodel.h')
-rw-r--r-- | qt-models/messagehandlermodel.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/qt-models/messagehandlermodel.h b/qt-models/messagehandlermodel.h new file mode 100644 index 000000000..7fb5c6515 --- /dev/null +++ b/qt-models/messagehandlermodel.h @@ -0,0 +1,29 @@ +#ifndef MESSAGEHANDLERMODEL_H +#define MESSAGEHANDLERMODEL_H + +#include <QAbstractListModel> + + +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<int, QByteArray> 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<MessageData> m_data; +}; + +#endif |