/** * @RDE_HEADER@ * AreaEffectSimulation - Functional Area Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Malte Diers, SLSE, 2017-04-06 */ #pragma once #include #include #include #include #include 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 &list); private Q_SLOTS: void getPosition(); void onRectData(const QPointF ¢erPoint, 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 &participants); private: std::shared_ptr m_asbfc; std::shared_ptr m_ppmDtc; AdvancedSymbology::Gui::SymbolModificationDialogFrameless *m_symbolConfig; QString m_sidc; AdvancedSymbology::SymbolResultWatcherQWidgetBase *m_symbolWatcher; QPolygonF m_previewPolygon; Ui::FunctionalAreaEdit *m_ui; QMap m_functionalAreaTypes; ParticipantManagement::Participant m_participant; }; } //namespace AreaEffectSimulation