Files
qt5-legatus-legacy/Lts/Plugins/Timeline/Gui/EventTimeline/tln_item_info_dialog.h
T
2026-08-13 18:33:10 +02:00

104 lines
3.6 KiB
C++
Executable File

#pragma once
#include "tln_timeline_model.h"
#include "tln_utils.h"
#include <LtsWidgets/lts_dialog.h>
#include <LtsSession/lts_session.h>
#include <Plugins/AudioVideoManagement/avm_menu_edit_gui_plugin_interface.h>
#include <Plugins/MarkerManagement/mrk_gui_plugin_interface.h>
#include <Plugins/FilterManagement/flt_participant_plugin_interface.h>
#include <Plugins/FilterManagement/flt_aes_plugin_interface.h>
#include <Plugins/FilterManagement/flt_building_cmpnt_plugin_interface.h>
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<LtsSession::LtsSession> &session,
const QPointer<LtsSession::LtsSession> &replayAppSession,
const std::shared_ptr<AudioVideoManagement::ForeignMenuEditGuiInterface> &avmIfc,
const std::shared_ptr<MarkerManagement::ForeignGuiInterface> &mrkIfc,
const std::shared_ptr<FilterManagement::ForeignFltParticipantGuiInterface> &fltParticipantIfc,
const std::shared_ptr<FilterManagement::ForeignAesGuiInterface> &fltAesIfc,
const std::shared_ptr<FilterManagement::ForeignFltBuildingComponentGuiInterface> &fltBuildingComponentIfc,
bool isTimelineApp, QWidget *pseudoParent
);
void retranslate() override;
private:
void enableDisableButtons(
std::shared_ptr<SituationReplay::ForeignGuiInterface> srpIfc, std::shared_ptr<SituationMap::ForeignGuiInterface> 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<LtsSession::LtsSession> &replayAppSession,
std::shared_ptr<SituationReplay::ForeignGuiInterface> *srpIfc,
std::shared_ptr<SituationMap::ForeignGuiInterface> *sitMapIfc);
private slots:
void onShowMarker();
void onFocusOnMap();
void updateMarker(const MarkerManagement::Marker &data, DataModification modType);
public slots:
void startSituationPlayback(const QPointer<LtsSession::LtsSession> &replayAppSession);
void onStartReplay();
signals:
void startSituationReplayApp();
private:
QPointer<LtsSession::LtsSession> m_replayAppSession;
std::shared_ptr<AudioVideoManagement::ForeignMenuEditGuiInterface> m_avmIfc;
std::shared_ptr<MarkerManagement::ForeignGuiInterface> m_mrkIfc;
std::shared_ptr<FilterManagement::ForeignFltParticipantGuiInterface> m_fltParticipantIfc;
std::shared_ptr<FilterManagement::ForeignAesGuiInterface> m_fltAesIfc;
std::shared_ptr<FilterManagement::ForeignFltBuildingComponentGuiInterface> m_fltBuildingComponentIfc;
LtsSession::LtsSessionDataDds *m_session { nullptr };
std::shared_ptr<MarkerManagement::Interface::Dtc> 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