#include "NavigationListModel.h" #include "NavigationItemModel.h" NavigationListModel::NavigationListModel(QObject* parent) : QObject(parent) { } QList NavigationListModel::getModelItems() { return mItems; } void NavigationListModel::setModelItems(QList list) { mItems.clear(); for(const auto& item : list){ mItems.append(item); } if(mItems.isEmpty()){ mIsBackVisible = false; } else{ mIsBackVisible = !list.at(0)->getParentItem()->isRoot(); } emit modelItemsChanged(); } bool NavigationListModel::isBackVisible() { return mIsBackVisible; } void NavigationListModel::navigateTo(NavigationItemModel *item) { if(!item) return; setModelItems(item->getSiblings()); } void NavigationListModel::navigateBack() { if(!mIsBackVisible || mItems.isEmpty()) return; auto item = qobject_cast(mItems.at(0)); if(!item || item->getParentItem()->isRoot()) return; navigateTo(item->getParentItem()); }