#pragma once #include "tln_timeline_model.h" #include "tln_utils.h" #include #include #include #include #include #include #include namespace Ui { class ItemInfoDialog; } namespace AudioVideoManagement { class StreamNameMapping; } namespace SituationReplay { class ForeignGuiInterface; } namespace Timeline { class ItemInfoDialog : public LtsWidgets::LtsDialog { Q_OBJECT public: explicit ItemInfoDialog(QWidget *parent = nullptr); ~ItemInfoDialog(); bool init(EventItemPtr &&itemPtr, int equipmentNumber, const QPointer &session, const QPointer &replayAppSession, const std::shared_ptr &avmIfc, const std::shared_ptr &mrkIfc, const std::shared_ptr &fltParticipantIfc, const std::shared_ptr &fltAesIfc, const std::shared_ptr &fltBuildingComponentIfc, bool isTimelineApp, QWidget *pseudoParent ); void retranslate() override; private: void enableDisableButtons( std::shared_ptr srpIfc, std::shared_ptr sitMapIfc ); void setButtonDisabled(QPushButton *button, QToolButton *warningButton, const QString &reasonMessage, bool hide = false); void setButtonEnabled(QPushButton *button, QToolButton *warningButton); bool getStreamName(QString &streamName, bool silent = false) const; bool hasStreamName() const; bool isHitEventType(); bool isMarkerAudio() const; bool isMarkerVideo() const; bool isMarkerAudioVideo() const; bool isAudioVideoCapable(); bool isMarkerSituation(); void startPlayback(bool isAudio); void initReplayAppSession(const QPointer &replayAppSession, std::shared_ptr *srpIfc, std::shared_ptr *sitMapIfc); private slots: void onShowMarker(); void onFocusOnMap(); void updateMarker(const MarkerManagement::Marker &data, DataModification modType); public slots: void startSituationPlayback(const QPointer &replayAppSession); void onStartReplay(); signals: void startSituationReplayApp(); private: QPointer m_replayAppSession; std::shared_ptr m_avmIfc; std::shared_ptr m_mrkIfc; std::shared_ptr m_fltParticipantIfc; std::shared_ptr m_fltAesIfc; std::shared_ptr m_fltBuildingComponentIfc; LtsSession::LtsSessionDataDds *m_session { nullptr }; std::shared_ptr m_mrkDtc; EventItemPtr m_itemPtr; AbstractEventItem *m_item { nullptr }; bool m_isApp { false }; Ui::ItemInfoDialog *m_ui { nullptr }; int m_formCount; NGL::INGLLogger &m_logger; }; } // namespace Timeline