HM-SPMS/product/src/gui/plugin/EventWidget/CEventDeviceTreeItem.cpp
2025-03-17 16:46:46 +08:00

114 lines
2.2 KiB
C++

#include "CEventDeviceTreeItem.h"
const int TypeRole = Qt::UserRole + 1;
CEventDeviceTreeItem::CEventDeviceTreeItem(const QString &data, CEventDeviceTreeItem *parent)
: m_tag(QString()),
m_parentItem(parent)
{
if(m_parentItem)
{
m_parentItem->m_childItems.append(this);
}
m_data = data;
m_checkState = Qt::Checked;
m_nType = 0;
}
CEventDeviceTreeItem::~CEventDeviceTreeItem()
{
qDeleteAll(m_childItems);
m_childItems.clear();
}
CEventDeviceTreeItem *CEventDeviceTreeItem::child(int row)
{
return m_childItems.value(row);
}
CEventDeviceTreeItem *CEventDeviceTreeItem::parentItem()
{
return m_parentItem;
}
int CEventDeviceTreeItem::row() const
{
if (m_parentItem)
{
return m_parentItem->m_childItems.indexOf(const_cast<CEventDeviceTreeItem*>(this));
}
return 0;
}
int CEventDeviceTreeItem::childCount() const
{
return m_childItems.count();
}
int CEventDeviceTreeItem::columnCount() const
{
return 1;
}
QVariant CEventDeviceTreeItem::data(Qt::ItemDataRole role) const
{
if(Qt::DisplayRole == role)
{
return m_data;
}
else if(Qt::UserRole == role)
{
return m_tag;
}
else if(Qt::CheckStateRole == role)
{
return m_checkState;
}
else if(Qt::ItemDataRole(TypeRole) == role)
{
return m_nType;
}
return QVariant();
}
bool CEventDeviceTreeItem::setData(const QVariant &value, Qt::ItemDataRole role)
{
if(Qt::DisplayRole == role)
{
m_data = value.toString();
return true;
}
else if(Qt::UserRole == role)
{
m_tag = 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;
}
return false;
}
bool CEventDeviceTreeItem::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;
}