Files
qt5-legatus-legacy/Lts/Plugins/AudioVideoManagement/Gui/Eloka/avm_eloka_dialog.h
T
2026-08-13 18:33:10 +02:00

81 lines
2.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* The ElokaDialog shows all electronic warfare and offers options to creating, updating and deleting
* $Id$
* $HeadURL$
* $Author$
* Created by Astrid Mueller, SGAS, 2017-10-17
*/
#pragma once
#include <set>
#include <LtsWidgets/lts_dialog.h>
#include <AudioVideoManagement/logger.h>
#include <AudioVideoManagement/avm_dtc.h>
#include <AudioVideoManagement/ava_types.h>
#include <AudioVideoManagement/list_response_collector.h>
#include <avm_eloka_model.h>
namespace Ui
{
class ElokaDialog;
}
namespace AudioVideoManagement
{
class AvaSession;
class StreamNameMapping;
class ElokaDialog : public LtsWidgets::LtsDialog
{
Q_OBJECT
public:
ElokaDialog(LtsSession::LtsSession *session, AvaSession *avaSession, Interface::Dtc *avmDtc, StreamNameMapping *streamNameMapping,
const QString &menuGroup, QWidget *parent = nullptr);
~ElokaDialog();
private slots:
void onAvaSessionEstablished();
void onAvaSessionDisconnected();
void onAddClicked();
void onEditClicked();
void onRemoveClicked();
void onSelectionChanged();
void onPrint();
private:
void retranslate() override;
void setAvaSessionStatus(bool established);
void getUsedRadioCircuits();
bool isCnr(ElokaData& data, const QMultiMap<qint32, ElokaCircuitType>& userProfile);
bool isTvc(ElokaData& data, const QMultiMap<qint32, ElokaCircuitType>& userProfile);
bool isAnnouncement(ElokaData& data);
void onQueryElokaResponse(const QVector<AvaEloka> &&eloka);
void tableColumnOrganiserSetting() override;
private:
Ui::ElokaDialog *m_ui;
QString m_menuGroup;
ElokaModel *m_elokaModel;
LtsSession::LtsSession *m_session;
AvaSession *m_avaSession;
QueryElokaListCollector m_elokaListCollector;
StreamNameMapping *m_streamNameMapping;
Interface::Dtc *m_avmDtc;
bool m_avaSessionEstablished;
std::vector<qint32> m_usedCnr;
std::vector<qint32> m_usedTvc;
std::vector<qint32> m_usedAnnouncement;
LOGGER_T m_logger;
};
} // namespace