git mv Code\Sandbox\Editor Code/Editor

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
Esteban Papp
2021-06-29 12:41:59 -07:00
parent 9f0bbf3b74
commit e34e36cb35
1415 changed files with 0 additions and 0 deletions
+108
View File
@@ -0,0 +1,108 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include "EditorDefs.h"
#include "ColumnGroupProxyModel.h"
// Editor
#include "Util/ColumnSortProxyModel.h"
#include "Util/AbstractSortModel.h"
ColumnGroupProxyModel::ColumnGroupProxyModel(QObject* parent)
: AbstractGroupProxyModel(parent)
, m_sortModel(new ColumnSortProxyModel(this))
, m_freeSortColumn(-1)
{
AbstractGroupProxyModel::setSourceModel(m_sortModel);
connect(m_sortModel, &ColumnSortProxyModel::SortChanged, this, &ColumnGroupProxyModel::SortChanged);
}
void ColumnGroupProxyModel::sort(int column, Qt::SortOrder order)
{
if (m_freeSortColumn != -1)
{
m_sortModel->RemoveColumnWithoutSorting(m_freeSortColumn);
m_freeSortColumn = -1;
}
if (!m_groups.contains(column))
{
m_freeSortColumn = column;
}
m_sortModel->sort(column, order);
}
void ColumnGroupProxyModel::setSourceModel(QAbstractItemModel* sourceModel)
{
Q_ASSERT(qobject_cast<AbstractSortModel*>(sourceModel));
m_sortModel->setSourceModel(sourceModel);
RebuildTree();
}
void ColumnGroupProxyModel::AddGroup(int column)
{
if (!m_groups.contains(column))
{
m_groups.push_back(column);
sort(column);
Q_EMIT GroupsChanged();
}
}
void ColumnGroupProxyModel::RemoveGroup(int column)
{
if (m_groups.contains(column))
{
m_groups.remove(m_groups.indexOf(column));
m_sortModel->RemoveColumn(column);
Q_EMIT GroupsChanged();
}
}
void ColumnGroupProxyModel::SetGroups(const QVector<int>& columns)
{
m_groups.clear();
foreach(int col, columns)
{
m_groups.push_back(col);
m_sortModel->AddColumnWithoutSorting(col);
}
m_sortModel->SortModel();
Q_EMIT GroupsChanged();
}
void ColumnGroupProxyModel::ClearGroups()
{
m_groups.clear();
m_sortModel->ClearColumns();
Q_EMIT GroupsChanged();
}
QVector<int> ColumnGroupProxyModel::Groups() const
{
return m_groups;
}
bool ColumnGroupProxyModel::IsColumnSorted(int col) const
{
return m_sortModel->IsColumnSorted(col);
}
Qt::SortOrder ColumnGroupProxyModel::SortOrder(int col) const
{
return m_sortModel->SortOrder(col);
}
QStringList ColumnGroupProxyModel::GroupForSourceIndex(const QModelIndex& sourceIndex) const
{
QStringList group;
foreach(int column, m_groups)
group.push_back(QString::fromLatin1("%1: %2").arg(headerData(column, Qt::Horizontal).toString(), sourceIndex.sibling(sourceIndex.row(), column).data().toString()));
return group;
}
#include <Util/moc_ColumnGroupProxyModel.cpp>