lena_pi/LenaPi/models/NavigationListModel.cpp
2021-08-28 14:08:02 +02:00

45 lines
960 B
C++

#include "NavigationListModel.h"
#include "NavigationItemModel.h"
QList<QObject*> NavigationListModel::getModelItems()
{
return mItems;
}
void NavigationListModel::setModelItems(const QList<NavigationItemModel*>& 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<NavigationItemModel*>(mItems.at(0));
if(!item || item->getParentItem()->isRoot()) return;
navigateTo(item->getParentItem());
}