#include "NavigationItemModel.h" #include #include NavigationItemModel::NavigationItemModel(QObject *parent) : QObject(parent), mImageSource("qrc:/default_image"), mParentItem(qobject_cast(parent)) { qRegisterMetaType("NavigationItemModel*"); } const QString& NavigationItemModel::getImageSource() const { return mImageSource; } const 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; auto source = dir.filePath("image.jpg"); if(QFile(source).exists()){ mImageSource = "file:///" + source; 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(); }