summaryrefslogtreecommitdiffstats
path: root/qt-models/messagehandlermodel.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2017-06-05 18:16:12 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-06-11 13:55:41 -0700
commit0ea6f13891cff45d1da7cb23a5e07a2080827b78 (patch)
treebefb85625f000382fa5263b1cc04911c775cd326 /qt-models/messagehandlermodel.h
parente7cd1785c420ba797477c8bd272ee02547731048 (diff)
downloadsubsurface-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.h29
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