Files
qt5-legatus-legacy/Lts/Plugins/AreaEffectSimulation/Gui/ChargeAdministration/aes_charge_administration_model.h
T
2026-08-13 18:33:10 +02:00

95 lines
2.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* HMI Plugin for AreaEffectSimulation - Contaminations Overview Dialog Model
* $Id$
* $HeadURL$
* $Author$
*
* Created by Malte Diers, SLSE, 2017-02-20
*/
#pragma once
#include <LtsWidgets/lts_abstract_table_model.h>
#include <LtsWidgets/lts_column_filter_proxy_model.h>
#include <AreaEffectSimulation/aes_dtc.h>
#include <AreaEffectSimulation/logger.h>
#include <ProjectDataManagement/pdm.hpp>
namespace LtsSession
{
class LtsSession;
}
namespace ProjectDataManagement {
namespace Interface {
class Dtc;
}
}
namespace AreaEffectSimulation
{
class ChargeAdministrationModel : public LtsWidgets::LtsAbstractTableModel<ChargeAdministration>
{
Q_OBJECT
public:
enum Columns
{
ColId,
ColTypeId,
ColChanged,
ColTypeName,
ColStock,
ColPlanned,
ColAvailable,
ColUsed,
ColGearClass
};
explicit ChargeAdministrationModel(QObject *parent = nullptr);
bool initModel(LtsSession::LtsSession *session, QVector<ChargeAdministrationModifyRequest> &reqs);
QVariant data(const QModelIndex &, int role = Qt::DisplayRole) const override final;
ProjectDataManagement::ChargeType chargeType(int id) const { return m_chargeTypeMap.value(id); }
private slots:
void onChargeAdministrationChanged(const AreaEffectSimulation::ChargeAdministration &data, DataModification modType);
private:
bool isDummy(const ProjectDataManagement::ChargeType &ct);
private:
std::shared_ptr<AreaEffectSimulation::Interface::Dtc> m_aesDtc;
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
QMap<qint32, ProjectDataManagement::ChargeType> m_chargeTypeMap;
LOGGER_T m_logger;
friend class ChargeAdministrationSortFilterProxyModel;
};
class ChargeAdministrationSortFilterProxyModel final : public LtsWidgets::LtsColumnFilterProxyModel
{
Q_OBJECT
public:
using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel;
void setSourceModel(QAbstractItemModel *model) override;
int party() const;
public slots:
void setParty(int party);
protected:
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
private:
ChargeAdministrationModel *m_sourceModel = nullptr;
int m_party = 0;
};
} //namespace AreaEffectSimulation