#ifndef FILEITEM_H #define FILEITEM_H #include #include #include class FileItemAction; typedef QSharedPointer FileItemDataPointer; typedef QSharedPointer FileItemActionPointer; class FileItem { public: explicit FileItem(FileItemDataPointer aData, FileItem* aParent = nullptr, FileItemActionPointer aAction = QSharedPointer()); ~FileItem(); void setChild(FileItem* aChild); void setChilds(const QList& aChilds); void removeChild(int aIndex); int childCount(); FileItem* getChild(int aIndex); FileItem* getParent(); FileItemDataPointer getData(); int getIndexRow(); void clearChilds(); void executeAction(); private: FileItem* mParent; QList mChilds; FileItemDataPointer mData; FileItemActionPointer mAction; }; #endif // FILEITEM_H