Add UI for DIDKIT.
This commit is contained in:
82
DIDKit/App/Model/FileItem.cpp
Normal file
82
DIDKit/App/Model/FileItem.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user