#include "FileItem.h" #include "FileItemAction.h" FileItem::FileItem(FileItemDataPointer mData, FileItem* aParent, FileItemActionPointer aAction) : mParent(aParent) , mChilds(QList()) , 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& 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(); } }