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

107 lines
3.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* AreaEffectSimulation - Functional Area Edit Dialog
* $Id$
* $HeadURL$
* $Author$
* Created by Malte Diers, SLSE, 2017-04-06
*/
#pragma once
#include <Plugins/AreaEffectSimulation/Gui/Base/aes_base_edit.h>
#include <AreaEffectSimulation/aes_ftc.h>
#include <Plugins/AdvancedSymbology/asb_data_plugin_interface.h>
#include <Plugins/ParticipantManagement/ppm_data_plugin_interface.h>
#include <QPolygonF>
namespace Ui
{
class FunctionalAreaEdit;
}
namespace AdvancedSymbology
{
namespace Gui
{
class SymbolModificationDialogFrameless;
}
}
namespace AreaEffectSimulation
{
class FunctionalAreaEdit final
: public BaseEdit
, protected AreaEffectSimulation::Interface::Ftc::FunctionalAreaModifyReplyHandler
{
Q_OBJECT
public:
explicit FunctionalAreaEdit(const QString &menuGroup, QWidget *parent = nullptr);
~FunctionalAreaEdit();
QString dialogIdentifier() const override
{
return m_aesItem.id() <= 0 ? QStringLiteral("AddFunctionalArea") : QStringLiteral("EditFunctionalArea%1").arg(m_aesItem.id());
}
bool init(int areaId, bool copy, LtsSession::LtsSession *session);
void onFunctionalAreaModifyReply(const Core::FunctionReplyObject &replyObject) override final { onAesItemModifyReply(replyObject); }
private:
void retranslate() override;
static double s_minWidth;
static double s_maxWidth;
static double s_stepWidth;
static double s_minHeight;
static double s_maxHeight;
static double s_stepHeight;
static int s_minDurationMinutes;
static int s_maxDurationMinutes;
static int s_stepDurationMinutes;
static int s_minEffectMinutes;
static int s_maxEffectMinutes;
static int s_stepEffectMinutes;
static int s_stepSupplyMinutes;
void setData(const FunctionalArea &area, bool copy);
void fillCbx();
void enableUiElements(bool enable) override;
void disableButtons(bool state);
void setVisableFaButtons();
QStringList toStringList(const QList<QByteArray> &list);
private Q_SLOTS:
void getPosition();
void onRectData(const QPointF &centerPoint, double width, double height, const QPolygonF &coordinates);
void onCbxIdxDeconChanged();
void onCbxIdxMaintChanged();
void onCbxIdxMedicChanged();
void onCbxIdxSupplyChanged();
void onCbxIdxFunctionalAreaTypeChanged();
void onSymbolSelection();
void onSymbolConfig();
void onChangeSymbol(const QString &sidc);
void onClearPointSymbol();
bool apply() override;
void showPreviewObject() override;
void onParticipantClicked();
void onParticipant(const QVector<int> &participants);
private:
std::shared_ptr<AdvancedSymbology::ForeignDataInterface> m_asbfc;
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
AdvancedSymbology::Gui::SymbolModificationDialogFrameless *m_symbolConfig;
QString m_sidc;
AdvancedSymbology::SymbolResultWatcherQWidgetBase *m_symbolWatcher;
QPolygonF m_previewPolygon;
Ui::FunctionalAreaEdit *m_ui;
QMap<qint32, AreaEffectSimulation::FunctionalAreaType> m_functionalAreaTypes;
ParticipantManagement::Participant m_participant;
};
} //namespace AreaEffectSimulation