lena_pi/LenaPi/models/NavigationListModel.cpp
2018-10-19 22:01:14 +02:00

44 lines
923 B
C++

#include "NavigationListModel.h"
#include "NavigationItemModel.h"
NavigationListModel::NavigationListModel(QObject* parent) : QObject(parent)
{
}
QList<QObject *> NavigationListModel::getModelItems()
{
return mItems;
}
void NavigationListModel::setModelItems(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::navigateBack()
{
if(!mIsBackVisible || mItems.isEmpty()) return;
auto item = qobject_cast<NavigationItemModel*>(mItems.at(0));
if(!item || item->getParentItem()->isRoot()) return;
setModelItems(item->getParentItem()->getSiblings());
}