Files
DCMV/DIDKit/App/Model/FileItem.cpp
2022-09-23 13:13:41 +08:00

83 lines
1.2 KiB
C++

#include "FileItem.h"
#include "FileItemAction.h"
FileItem::FileItem(FileItemDataPointer mData, FileItem* aParent, FileItemActionPointer aAction)
: mParent(aParent)
, mChilds(QList<FileItem*>())
, mData(mData)
, mAction(aAction)
{
if (mParent != nullptr)
{
mParent->setChild(this);
}
}
FileItem::~FileItem()
{
qDeleteAll(mChilds);
mChilds.clear();
}
void FileItem::setChild(FileItem* aChild)
{
mChilds.append(aChild);
}
void FileItem::setChilds(const QList<FileItem*>& aChilds)
{
mChilds.append(aChilds);
}
void FileItem::removeChild(int aIndex)
{
mChilds.removeAt(aIndex);
}
int FileItem::childCount()
{
return mChilds.count();
}
FileItem* FileItem::getChild(int aIndex)
{
if (aIndex < mChilds.count())
{
return mChilds.at(aIndex);
}
return nullptr;
}
FileItem* FileItem::getParent()
{
return mParent;
}
FileItemDataPointer FileItem::getData()
{
return mData;
}
int FileItem::getIndexRow()
{
if (mParent)
{
return mParent->mChilds.indexOf(this);
}
return 0;
}
void FileItem::clearChilds()
{
qDeleteAll(mChilds);
mChilds.clear();
}
void FileItem::executeAction()
{
if(!mAction.isNull())
{
mAction->execute();
}
}