Files
qt5-legatus-legacy/Lts/Plugins/ExerciseManagement/Gui/ExerciseEdit/exm_operator_model.h
T
2026-08-13 18:33:10 +02:00

52 lines
1.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* OperatorManagement - Group Edit member of model
* $Id$
* $HeadURL$
* $Author$
* Created by Malte Diers, SLSE, 2017-10-10
*/
#pragma once
#include <Plugins/OperatorManagement/Data/opm_data_plugin.h>
#include <Plugins/ParticipantManagement/Data/ppm_data_plugin.h>
#include <LtsSession/lts_session_data_dds.h>
#include <LtsWidgets/lts_checkable_table_model.h>
namespace ExerciseManagement
{
class ExerciseOperatorModel : public LtsWidgets::LtsCheckableTableModel<QPair<bool, OperatorManagement::User>>
{
Q_OBJECT
public:
enum Columns
{
Name,
Description,
VisibleParties
};
explicit ExerciseOperatorModel(LtsSession::LtsSessionDataDds *session, int exerciseId = 0,
QObject *parent = nullptr);
~ExerciseOperatorModel() = default;
QVariant data(const QModelIndex &index, int role) const override;
public slots:
void onOperatorChanged(const OperatorManagement::User &data, DataModification mod);
private:
QString hasVisibleParties(const std::vector<OperatorManagement::PartiesByExercise> vpbe) const;
QString visibleParties(const std::vector<int32_t> &visible,
const std::vector<int32_t> &hidden) const;
bool hasMembership(const OperatorManagement::User &user) const;
std::shared_ptr<OperatorManagement::Interface::Dtc> m_opmDtc;
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
int m_exerciseId;
};
}