HM-SPMS/product/src/gui/plugin/AlarmWidget/CAlarmDeviceTreeItem.cpp
2025-03-17 16:53:15 +08:00

160 lines
3.4 KiB
C++

#include <QStringList>
#include "CAlarmDeviceTreeItem.h"
#include "pub_logger_api/logger.h"
#include "Common.h"
const int TypeRole = Qt::UserRole + 1;
const int TagRole = Qt::UserRole + 2;
const int DomainRole = Qt::UserRole + 3;
const int LocationRole = Qt::UserRole + 4;
const int SubsystemRole = Qt::UserRole + 5;
const int RegionRole = Qt::UserRole + 6;
CAlarmDeviceTreeItem::CAlarmDeviceTreeItem(const QString &data, CAlarmDeviceTreeItem *parent)
: m_tag(QString()),
m_nDomain(CN_InvalidDomainId),
m_nLocation(CN_InvalidLocationId),
m_nSubsystem(CN_InvalidSubsystemId),
m_nType(0),
m_nRegion(0),
m_parentItem(parent)
{
if(m_parentItem)
{
m_parentItem->m_childItems.append(this);
}
m_data = data;
m_checkState = Qt::Checked;
}
CAlarmDeviceTreeItem::~CAlarmDeviceTreeItem()
{
qDeleteAll(m_childItems);
m_childItems.clear();
}
CAlarmDeviceTreeItem *CAlarmDeviceTreeItem::child(int row)
{
return m_childItems.value(row);
}
CAlarmDeviceTreeItem *CAlarmDeviceTreeItem::parentItem()
{
return m_parentItem;
}
int CAlarmDeviceTreeItem::row() const
{
if (m_parentItem)
{
return m_parentItem->m_childItems.indexOf(const_cast<CAlarmDeviceTreeItem*>(this));
}
return 0;
}
int CAlarmDeviceTreeItem::childCount() const
{
return m_childItems.count();
}
int CAlarmDeviceTreeItem::columnCount() const
{
return 1;
}
QVariant CAlarmDeviceTreeItem::data(Qt::ItemDataRole role) const
{
if(Qt::DisplayRole == role)
{
return m_data;
}
else if(Qt::CheckStateRole == role)
{
return m_checkState;
}
else if(Qt::ItemDataRole(TypeRole) == role)
{
return m_nType;
}
else if(Qt::ItemDataRole(TagRole) == role)
{
return m_tag;
}
else if(Qt::ItemDataRole(DomainRole) == role)
{
return m_nDomain;
}
else if(Qt::ItemDataRole(LocationRole) == role)
{
return m_nLocation;
}
else if(Qt::ItemDataRole(SubsystemRole) == role)
{
return m_nSubsystem;
}
else if(Qt::ItemDataRole(RegionRole) == role)
{
return m_nRegion;
}
return QVariant();
}
bool CAlarmDeviceTreeItem::setData(const QVariant &value, Qt::ItemDataRole role)
{
if(Qt::DisplayRole == role)
{
m_data = value.toString();
return true;
}
else if(Qt::CheckStateRole == role)
{
m_checkState = (Qt::CheckState)value.toInt();
return true;
}
else if(TypeRole == role)
{
m_nType = value.toInt();
return true;
}
else if(TagRole == role)
{
m_tag = value.toString();
return true;
}
else if(DomainRole == role)
{
m_nDomain = value.toInt();
return true;
}
else if(LocationRole == role)
{
m_nLocation = value.toInt();
return true;
}
else if(SubsystemRole == role)
{
m_nSubsystem = value.toInt();
return true;
}
else if(RegionRole == role)
{
m_nRegion = value.toInt();
return true;
}
return false;
}
bool CAlarmDeviceTreeItem::removeChildren(int position, int count, int columns)
{
Q_UNUSED(columns)
if (position < 0 || position + count > m_childItems.size())
return false;
for (int row = 0; row < count; ++row)
delete m_childItems.takeAt(position);
return true;
}