44 lines
923 B
C++
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());
|
|
}
|