- Formatted all CodeGen module files (9 files) - Formatted LtsAppDescriptor module files - Formatted LtsAppManager/AppChooser files - Applied clang-format to all DTC and enum headers across modules - Removed coordTransTests from CommonUnitTestsPlaceholder (moved to tests/) Cosmetic changes only, no functional modifications. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
|
|
|
|
#include "evl_model.h"
|
|
|
|
#include <Evaluations/evl_translation.h>
|
|
|
|
namespace Evaluations
|
|
{
|
|
|
|
CriteriumDialogModel::CriteriumDialogModel(QObject* parent)
|
|
: LtsWidgets::LtsAbstractTableModel<EvaluationCriterium>({tr("Id"), tr("Name"), tr("Description"), tr("Operator")},
|
|
parent)
|
|
{
|
|
}
|
|
|
|
bool CriteriumDialogModel::initModel(const std::shared_ptr<Interface::Dtc>& dtc,
|
|
const std::shared_ptr<OperatorManagement::Interface::Dtc>& opmDtc)
|
|
{
|
|
m_opmDtc = opmDtc;
|
|
connect(dtc.get(), &Interface::Dtc::evaluationCriteriumChanged, this, &CriteriumDialogModel::onDataChanged);
|
|
dtc->evaluationCriteriums([this](const EvaluationCriterium& e) { insertRow(e); });
|
|
|
|
INFO_LOG(m_logger) << "initModel - #EvalCriteria: " << m_vecData.size();
|
|
|
|
return true;
|
|
}
|
|
|
|
QVariant CriteriumDialogModel::data(const QModelIndex& index, int role) const
|
|
{
|
|
if (role != Qt::DisplayRole || !indexIsValid(index))
|
|
return QVariant();
|
|
|
|
const Evaluations::EvaluationCriterium& eval = m_vecData.at(index.row());
|
|
switch (index.column())
|
|
{
|
|
case Id:
|
|
return eval.id();
|
|
case Name:
|
|
return QString::fromStdString(eval.name());
|
|
case Description:
|
|
return QString::fromStdString(eval.description());
|
|
case Operator:
|
|
return QString::fromStdString(m_opmDtc->user(eval.operatorId()).name());
|
|
}
|
|
|
|
return QVariant();
|
|
}
|
|
|
|
void CriteriumFilterModel::setOperatorId(int operatorId)
|
|
{
|
|
if (m_operatorId == operatorId)
|
|
return;
|
|
m_operatorId = operatorId;
|
|
invalidateFilter();
|
|
}
|
|
|
|
void CriteriumFilterModel::setSourceModel(QAbstractItemModel* sourceModel)
|
|
{
|
|
m_sourceModel = qobject_cast<CriteriumDialogModel*>(sourceModel);
|
|
LtsWidgets::LtsColumnFilterProxyModel::setSourceModel(sourceModel);
|
|
}
|
|
|
|
bool CriteriumFilterModel::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const
|
|
{
|
|
if (m_operatorId < 0 || !m_sourceModel || source_parent.isValid() || source_row < 0 ||
|
|
source_row >= m_sourceModel->m_vecData.size())
|
|
return LtsWidgets::LtsColumnFilterProxyModel::filterAcceptsRow(source_row, source_parent);
|
|
|
|
const auto& data = m_sourceModel->m_vecData.at(source_row);
|
|
if (data.operatorId() != m_operatorId)
|
|
return false;
|
|
return LtsWidgets::LtsColumnFilterProxyModel::filterAcceptsRow(source_row, source_parent);
|
|
}
|
|
|
|
} // namespace Evaluations
|