Files
o3de/Code/Tools/Standalone/Source/Driller/Replica/ReplicaTreeViewModel.cpp
T
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -07:00

91 lines
2.5 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include "StandaloneTools_precompiled.h"
#include "Source/Driller/Replica/ReplicaTreeViewModel.hxx"
#include <Source/Driller/Replica/moc_ReplicaTreeViewModel.cpp>
namespace Driller
{
ReplicaTreeViewModel::ReplicaTreeViewModel(QObject* parent)
: QAbstractItemModel(parent)
{
}
ReplicaTreeViewModel::~ReplicaTreeViewModel()
{
}
int ReplicaTreeViewModel::rowCount(const QModelIndex& parentIndex) const
{
int rowCount = 0;
if (!parentIndex.isValid())
{
rowCount = GetRootRowCount();
}
else
{
const BaseDisplayHelper* displayHelper = static_cast<const BaseDisplayHelper*>(parentIndex.internalPointer());
rowCount = static_cast<int>(displayHelper->GetTreeRowCount());
}
return rowCount;
}
QModelIndex ReplicaTreeViewModel::index(int row, int column, const QModelIndex& parent) const
{
if (!parent.isValid())
{
const BaseDisplayHelper* baseDisplayHelper = FindDisplayHelperAtRoot(row);
if (baseDisplayHelper)
{
return createIndex(row, column, (void*)(baseDisplayHelper));
}
else
{
return QModelIndex();
}
}
else
{
const BaseDisplayHelper* parentHelper = static_cast<const BaseDisplayHelper*>(parent.internalPointer());
const BaseDisplayHelper* displayHelper = parentHelper->FindChildByRow(row);
if (displayHelper)
{
return createIndex(row, column, (void*)(displayHelper));
}
else
{
AZ_Assert(false, "Invalid Tree Structure");
}
}
return QModelIndex();
}
QModelIndex ReplicaTreeViewModel::parent(const QModelIndex& index) const
{
if (index.isValid())
{
const BaseDisplayHelper* displayHelper = static_cast<const BaseDisplayHelper*>(index.internalPointer());
const BaseDisplayHelper* parent = displayHelper->GetParent();
if (parent)
{
return createIndex(parent->GetChildIndex(displayHelper), 0, (void*)(parent));
}
}
return QModelIndex();
}
}