83 lines
1.2 KiB
C++
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();
|
|
}
|
|
}
|