#pragma once #include #include #include "logger.h" namespace Ui { class TimelineLegendDialog; } namespace Timeline { class DDSTimelineModel; class TimelineLegendDialog : public LtsWidgets::LtsDialog { Q_OBJECT public: explicit TimelineLegendDialog(QWidget *parent = nullptr); ~TimelineLegendDialog(); bool apply() override; bool init(DDSTimelineModel *model, const QSet &activeEventTypeIds); void setActiveEventTypeIds(const QSet &activeEventTypeIds); static QVector possibleEvents(); signals: void signalEventTypesChanged(const QSet &activeEventTypeIds); private: NGL::INGLLogger &m_logger; void retranslate() override; static QString checkBoxName(int eventTypeId) { return QStringLiteral("CheckBoxEvent%1").arg(eventTypeId); } static QString checkBoxName(ProjectDataManagement::EventType eventType) { return checkBoxName(eventType.underlying()); } QCheckBox *checkBox(int eventTypeId) { return findChild(checkBoxName(eventTypeId)); } QCheckBox *checkBox(ProjectDataManagement::EventType eventType) { return checkBox(eventType.underlying()); } private: Ui::TimelineLegendDialog *m_ui; }; }