1#ifndef DAMESSAGELOGSMODEL_H
2#define DAMESSAGELOGSMODEL_H
4#include <QAbstractTableModel>
5#include <QSortFilterProxyModel>
6#include "DAMessageQueueProxy.h"
7#ifndef DA_ROLE_MESSAGE_TYPE
11#define DA_ROLE_MESSAGE_TYPE (Qt::UserRole + 1)
16class DAMessageLogItem;
17DA_IMPL_FORWARD_DECL(DAMessageLogsModel)
29 QVariant headerData(
int section, Qt::Orientation orientation,
int role)
const override;
30 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
31 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
32 QVariant data(
const QModelIndex& index,
int role = Qt::DisplayRole)
const override;
33 Qt::ItemFlags flags(
const QModelIndex& index)
const override;
34 bool setData(
const QModelIndex& index,
const QVariant& value,
int role = Qt::EditRole)
override;
41 void setShowDateTime(
bool on =
true);
43 bool isShowDateTime()
const;
45 void setTypeBackgroundColor(QtMsgType type,
const QColor& clr);
50 void onMessageAppended();
51 void onMessageQueueSizeChanged(
int newSize);
54 virtual QVariant dataDisplay(
DAMessageLogItem* item,
const QModelIndex& index)
const;
55 virtual QVariant dataDecoration(
DAMessageLogItem* item,
const QModelIndex& index)
const;
56 virtual QVariant dataBackground(
DAMessageLogItem* item,
const QModelIndex& index)
const;
57 virtual QVariant dataToolTip(
DAMessageLogItem* item,
const QModelIndex& index)
const;
72 AcceptDebugMsg = 0x01,
73 AcceptWarningMsg = 0x02,
74 AcceptCriticalMsg = 0x04,
75 AcceptFatalMsg = 0x08,
79 Q_ENUM(AcceptMessageType)
80 Q_DECLARE_FLAGS(AcceptMessageTypeFlags, AcceptMessageType)
84 bool filterAcceptsRow(
int sourceRow,
const QModelIndex& sourceParent)
const override;
88 void setAcceptMessageTypeFlag(AcceptMessageType t,
bool on);
90 bool testAcceptMessageTypeFlag(AcceptMessageType t)
const;
92 bool isQtMsgTypeMatchAcceptType(
int msgtype)
const;
95 AcceptMessageTypeFlags _acceptsType;
包含了一个信息的所有内容
Definition DAMessageLogItem.h:13
用于显示全局消息的model
Definition DAMessageLogsModel.h:22
对message的SortFilterProxyModel,用于进行消息过滤
Definition DAMessageLogsModel.h:64
AcceptMessageType
定义接受的消息类型
Definition DAMessageLogsModel.h:71
这是一个全局的日志队列,所有的qdebug相关的消息都会推入这个队列中
Definition DAMessageQueueProxy.h:21
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44