#include "NavigationItemModel.h" #include #include NavigationItemModel::NavigationItemModel(QObject *parent) : QObject(parent), mImageSource("qrc:/default_image"), mParentItem(qobject_cast(parent)) { qRegisterMetaType("NavigationItemModel*"); } QString NavigationItemModel::getImageSource() const { return mImageSource; } QString NavigationItemModel::getPath() const { return mPath; } void NavigationItemModel::onClicked() { emit clicked(); } bool NavigationItemModel::setPath(const QString &path) { auto dir = QDir(path); if(!dir.exists()) return false; mPath = path; /// @todo move default image to qrc auto source = dir.filePath("image.jpg"); if(QFile(source).exists()) mImageSource = "file:///" + source; else mImageSource = "file:///home/ar/source/LenaPi/pics/benjamin.jpeg"; emit imageSourceChanged(); return true; } bool NavigationItemModel::isCircleDelegate() const { return hasChildren(); } bool NavigationItemModel::isRoot() const { return !mParentItem; } NavigationItemModel *NavigationItemModel::getParentItem() { return mParentItem; } bool NavigationItemModel::hasChildren() const { return !mChildren.isEmpty(); } QList NavigationItemModel::getChildren() { return mChildren; } QList NavigationItemModel::getSiblings() { if(isRoot()){ return QList(); } else{ return mParentItem->getChildren(); } } void NavigationItemModel::appendChild(NavigationItemModel *item) { item->setParent(this); mChildren.append(item); } void NavigationItemModel::clearChildren() { for(const auto& child : mChildren){ child->deleteLater(); } mChildren.clear(); }