feat:添加事件数据过滤功能类AlarmEventDataFilter
This commit is contained in:
parent
b6cb80fe2b
commit
d765f819be
|
|
@ -54,6 +54,7 @@ public:
|
||||||
explicit AlarmEventDataModel(QObject* parent = nullptr);
|
explicit AlarmEventDataModel(QObject* parent = nullptr);
|
||||||
~AlarmEventDataModel();
|
~AlarmEventDataModel();
|
||||||
|
|
||||||
|
//QAbstractTableModel接口实现
|
||||||
QModelIndex index(int row, int column, const QModelIndex& parent) const override;
|
QModelIndex index(int row, int column, const QModelIndex& parent) const override;
|
||||||
QVariant data(const QModelIndex& index, int role) const override;
|
QVariant data(const QModelIndex& index, int role) const override;
|
||||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||||
|
|
@ -62,7 +63,10 @@ public:
|
||||||
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
|
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
|
||||||
Qt::ItemFlags flags(const QModelIndex& index) const override;
|
Qt::ItemFlags flags(const QModelIndex& index) const override;
|
||||||
|
|
||||||
|
//自定义功能函数
|
||||||
const QVector<SectionData> headerData() const {return m_headerData;}
|
const QVector<SectionData> headerData() const {return m_headerData;}
|
||||||
|
void setMaxRealTimeEvents(int value) {m_maxRealTimeEvents = value;}
|
||||||
|
const int getMaxRealTimeEvents() const {return m_maxRealTimeEvents;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void iniHeaderData();
|
void iniHeaderData();
|
||||||
|
|
@ -72,6 +76,35 @@ private:
|
||||||
QVector<EventData> m_displayEvents;
|
QVector<EventData> m_displayEvents;
|
||||||
QVector<SectionData> m_headerData;
|
QVector<SectionData> m_headerData;
|
||||||
PaginationInfo m_paginationInfo;
|
PaginationInfo m_paginationInfo;
|
||||||
|
|
||||||
|
int m_maxRealTimeEvents;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AlarmEventDataFilter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AlarmEventDataFilter();
|
||||||
|
|
||||||
|
void setTimeRange(const QDateTime& start, const QDateTime& end) {m_startTime = start; m_endTime = end;}
|
||||||
|
void setStationFilter(const QString& station) {m_station = station;}
|
||||||
|
void setBayFilter(const QString& bay) {m_bay = bay;}
|
||||||
|
void setTypeFilter(int type) {m_type = type;}
|
||||||
|
void setSeverityFilter(const QString& severity) {m_severity = severity;}
|
||||||
|
void setDescriptionFilter(const QString& description) {m_description = description;}
|
||||||
|
void setConfirmStatusFilter(int status) {m_status = status;}
|
||||||
|
|
||||||
|
bool matches(const EventData& event);
|
||||||
|
void clear();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QDateTime m_startTime;
|
||||||
|
QDateTime m_endTime;
|
||||||
|
QString m_station;
|
||||||
|
QString m_bay;
|
||||||
|
int m_type;
|
||||||
|
QString m_severity;
|
||||||
|
QString m_description;
|
||||||
|
int m_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
class AlarmEventDataDelegate : public QStyledItemDelegate
|
class AlarmEventDataDelegate : public QStyledItemDelegate
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
enum MainDialogMode
|
enum AlarmDataMode
|
||||||
{
|
{
|
||||||
RealTime = 0,
|
RealTime = 0,
|
||||||
Historical
|
Historical
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public:
|
||||||
AlarmEventMainDialog(QWidget *parent = nullptr);
|
AlarmEventMainDialog(QWidget *parent = nullptr);
|
||||||
~AlarmEventMainDialog();
|
~AlarmEventMainDialog();
|
||||||
|
|
||||||
void setMode(MainDialogMode mode);
|
void setMode(AlarmDataMode mode);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sgl_hide();
|
void sgl_hide();
|
||||||
|
|
@ -31,7 +31,7 @@ public slots:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::alarmEventMainDialog* ui;
|
Ui::alarmEventMainDialog* ui;
|
||||||
MainDialogMode m_mode;
|
AlarmDataMode m_mode;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,13 +134,65 @@ void AlarmEventDataModel::iniHeaderData()
|
||||||
|
|
||||||
void AlarmEventDataModel::updateCurPageData()
|
void AlarmEventDataModel::updateCurPageData()
|
||||||
{
|
{
|
||||||
|
beginResetModel();
|
||||||
|
|
||||||
m_displayEvents.clear();
|
m_displayEvents.clear();
|
||||||
|
|
||||||
|
endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlarmEventDataModel::updateTotalCount()
|
void AlarmEventDataModel::updateTotalCount()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
///////------AlarmEventDataFilter-----
|
||||||
|
AlarmEventDataFilter::AlarmEventDataFilter()
|
||||||
|
{
|
||||||
|
m_type = -1;
|
||||||
|
m_status = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AlarmEventDataFilter::matches(const EventData& event)
|
||||||
|
{
|
||||||
|
QDateTime eventTime = QDateTime::fromMSecsSinceEpoch(event.timestamp);
|
||||||
|
if(m_startTime.isValid() && eventTime < m_startTime)
|
||||||
|
return false;
|
||||||
|
if(m_endTime.isValid() && eventTime > m_endTime)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(!m_station.isEmpty() && event.stationName != m_station)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(!m_bay.isEmpty() && event.bayName != m_bay)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(event.type != m_type)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(!m_severity.isEmpty() && event.severity != m_severity)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(!m_description.isEmpty() && event.description != m_description)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(event.status != m_status)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AlarmEventDataFilter::clear()
|
||||||
|
{
|
||||||
|
m_startTime = QDateTime();
|
||||||
|
m_endTime = QDateTime();
|
||||||
|
m_station.clear();
|
||||||
|
m_bay.clear();
|
||||||
|
m_type = -1;
|
||||||
|
m_severity.clear();
|
||||||
|
m_description.clear();
|
||||||
|
m_status = -1;
|
||||||
|
}
|
||||||
|
|
||||||
///////------AlarmEventDataDelegate-----
|
///////------AlarmEventDataDelegate-----
|
||||||
AlarmEventDataDelegate::AlarmEventDataDelegate(QTableView* view, QObject* parent)
|
AlarmEventDataDelegate::AlarmEventDataDelegate(QTableView* view, QObject* parent)
|
||||||
: QStyledItemDelegate(parent)
|
: QStyledItemDelegate(parent)
|
||||||
|
|
@ -183,6 +235,7 @@ AlarmEventDataView::AlarmEventDataView(QWidget* parent)
|
||||||
m_tableView = new QTableView(this);
|
m_tableView = new QTableView(this);
|
||||||
m_tableView->verticalHeader()->setVisible(false);
|
m_tableView->verticalHeader()->setVisible(false);
|
||||||
m_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
m_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||||
|
m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
m_tableView->setShowGrid(false);
|
m_tableView->setShowGrid(false);
|
||||||
//m_tableView->setStyleSheet("QHeaderView{background-color: rgb(40, 40, 40);} QHeaderView::section{background-color:transparent;}");
|
//m_tableView->setStyleSheet("QHeaderView{background-color: rgb(40, 40, 40);} QHeaderView::section{background-color:transparent;}");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ void AlarmEventMainDialog::showEvent(QShowEvent* event)
|
||||||
QDialog::showEvent(event);
|
QDialog::showEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AlarmEventMainDialog::setMode(MainDialogMode mode)
|
void AlarmEventMainDialog::setMode(AlarmDataMode mode)
|
||||||
{
|
{
|
||||||
if(mode == RealTime)
|
if(mode == RealTime)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue