Files
qt5-legatus-legacy/Lts/Plugins/ParticipantManagement/Gui/Common/participant_template_edit_item.h
T
2026-08-13 18:33:10 +02:00

119 lines
4.5 KiB
C++
Executable File

/**
* @RDE_HEADER@
* HMI Plugin for ParticipantManagement - Template Edit Item Dialog
* $Id$
* $HeadURL$
* $Author$
* Created by Patric Karwat, SLSE, 2016-10-05
*/
#pragma once
#include "participant_edit_item_widget_base.h"
#include <ParticipantManagement/Gui/Common/ppmcommon_export.h>
#include "participant_firing_unit_validator.h"
#include <LtsWidgets/lts_frameless_dialog.h>
#include <LtsWidgets/lts_dialog.h>
#include <LtsWidgets/lts_dialog_button_box.h>
#include <QModelIndex>
namespace ParticipantManagement
{
class ParticipantTemplateEditItemWidget final : public ParticipantEditItemWidgetBase
{
Q_OBJECT
public:
explicit ParticipantTemplateEditItemWidget(bool asSupportService,
LtsSession::LtsSession *session,
QWidget *parent = nullptr);
bool init(const QModelIndex &workingIndex,
const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc,
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
const TemplateData &data,
const bool addItem = false);
void setUsedEquipmentNumbers(const QSet<int> &usedEquipmentNumbers) { m_usedEquipmentNumbers = usedEquipmentNumbers; }
void setFiringUnitRestrictions(ParticipantTemplateEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions, FiringUnitValidator *firingUnitValidator, const int &unitGearClassTyp);
void setIsAdler(bool isAdler) {m_isAdler = isAdler;}
protected:
void setData() override;
void setDesignatorData() override;
public:
void onAddItem() override;
bool onEditItem() override;
protected:
int editTypeId() const override { return m_editData.typeId(); }
int currentPartyId() const override { return 0; }
bool checkEquipNo(int equipNo);
Q_SIGNALS:
void addItem(const QModelIndex &parent, const TemplateData &newData);
void updateItem(const QModelIndex &index, const TemplateData &editData);
private:
QSet<int> m_usedEquipmentNumbers;
TemplateData m_editData;
QModelIndex m_workingIndex;
bool m_isAdler;
};
class PPMCOMMON_EXPORT ParticipantTemplateEditItem final : public LtsWidgets::LtsFramelessDialog
{
Q_OBJECT
public:
ParticipantTemplateEditItem(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr);
bool init(const QModelIndex &workingIndex,
const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc,
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
const TemplateData &data = TemplateData(),
const bool addItem = false);
void setFiringUnitRestrictions(ParticipantTemplateEditModel *model, bool isEdit, const FiringUnitValidator::FiringUnitRestrictions &restrictions,
FiringUnitValidator *firingUnitValidator,
const int unitGearClassType);
void setIsAdler(bool isAdler) {m_editItemWidget->setIsAdler(isAdler);}
public Q_SLOTS:
void setUsedEquipmentNumbers(const QSet<int> &usedEquipmentNumbers) { m_editItemWidget->setUsedEquipmentNumbers(usedEquipmentNumbers); }
Q_SIGNALS:
void addItem(const QModelIndex &parent, const TemplateData &newData);
void updateItem(const QModelIndex &index, const TemplateData &editData);
private:
ParticipantTemplateEditItemWidget *m_editItemWidget;
LtsWidgets::LtsDialogButtonBox *m_buttonBox;
};
class PPMCOMMON_EXPORT ParticipantTemplateEditItemTab final : public LtsWidgets::LtsDialog
{
Q_OBJECT
public:
ParticipantTemplateEditItemTab(bool asSupportService, LtsSession::LtsSession *session, QWidget *parent = nullptr);
bool init(const QModelIndex &workingIndex,
const std::shared_ptr<ParticipantManagement::Interface::Dtc> &dtc,
const std::shared_ptr<ParticipantManagement::ForeignGuiComboboxInterface> &ppmGuiCbxIfc,
const std::shared_ptr<AdvancedSymbology::ForeignDataInterface> &asb,
const TemplateData &data = TemplateData());
Q_SIGNALS:
void addItem(int &row, const QModelIndex &parent, const TemplateData &newData, bool asCopy);
void updateItem(const QModelIndex &index, const TemplateData &editData);
private:
void retranslate() override;
bool apply() override;
private:
ParticipantTemplateEditItemWidget *m_editItemWidget;
};
} // namespace ParticipantManagement