Complete Qt6 migration: full clean build green across groups G1-G12 incl. runtime plugin set

new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
This commit is contained in:
berrux-dev committed 2026-10-20 09:36:57 +02:00
1 parent 2b957d1edb
commit 598fc2560e
1718 files changed
+126739 -18495

No files matched your search

@@ -21,12 +21,11 @@ QDataStream& operator>>(QDataStream& ds, StreamData& sd)
AvailStreamsModel::AvailStreamsModel(Interface::Dtc* avmDtc, int32_t exerciseId, QObject* parent)
: NGLTreeModel(parent, new NGLTreeItem(QVariant()), {tr("Available")}), m_exerciseId(exerciseId), m_avmDtc(avmDtc),
m_cnrRoot(new NGLTreeItem(QVariant())), m_tvcRoot(new NGLTreeItem(QVariant())), m_changes(false)
m_cnrRoot(new NGLTreeItem(QVariant())), m_tvcRoot(new NGLTreeItem(QVariant())), m_changes(false),
m_logger(getLogger("AudioSettingsAvailStreamsModel"))
{
Q_ASSERT(avmDtc);
qRegisterMetaTypeStreamOperators<StreamData>();
setMimeType(StreamData::mimeType());
StreamData data;
@@ -168,7 +167,7 @@ void AvailStreamsModel::insertUpdateData(const T& config, DataModification modTy
if (modType == DataModification::eModified)
{
if (config.exerciseId().is_set() && config.exerciseId().get() != m_exerciseId)
if (config.exerciseId.has_value() && config.exerciseId.get() != m_exerciseId)
action = DataModification::eRemoved;
}
@@ -177,7 +176,7 @@ void AvailStreamsModel::insertUpdateData(const T& config, DataModification modTy
switch (action)
{
case DataModification::eAdded:
if (config.exerciseId().is_set() && config.exerciseId().get() != m_exerciseId)
if (config.exerciseId.has_value() && config.exerciseId.get() != m_exerciseId)
break;
Q_FALLTHROUGH();
case DataModification::eModified: {
@@ -17,7 +17,7 @@ namespace AudioVideoManagement
{
AudioSettingsDialog::AudioSettingsDialog(QWidget* parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel), m_ui(new Ui::AudioSettingsDialog),
m_requestHelper(new LtsUtils::RequestHelper(this))
m_requestHelper(new LtsUtils::RequestHelper(this)), m_logger(getLogger("AudioSettingsDialog"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@@ -111,9 +111,9 @@ void AudioSettingsDialog::onOperatorChanged(const OperatorManagement::User& data
switch (modType)
{
case DataModification::eRemoved: {
Q_ASSERT(m_operatorMap.contains(data.id()));
Q_ASSERT(m_operatorMap.contains(data.id));
if (m_ui->operatorComboBox->currentData().toInt() == data.id())
if (m_ui->operatorComboBox->currentData().toInt() == data.id)
{
__unchange__();
m_modelAllocated->resetChangeState();
@@ -121,25 +121,25 @@ void AudioSettingsDialog::onOperatorChanged(const OperatorManagement::User& data
m_filterAvailable->invalidate();
}
m_operatorMap.remove(data.id());
m_ui->operatorComboBox->removeItem(m_ui->operatorComboBox->findData(data.id()));
m_operatorMap.remove(data.id);
m_ui->operatorComboBox->removeItem(m_ui->operatorComboBox->findData(data.id));
break;
}
case DataModification::eAdded: {
Q_ASSERT(!m_operatorMap.contains(data.id()));
const QString operatorName = QString::fromStdString(data.name());
m_operatorMap.insert(data.id(), operatorName);
m_ui->operatorComboBox->addItem(operatorName, data.id());
Q_ASSERT(!m_operatorMap.contains(data.id));
const QString operatorName = QString::fromStdString(data.name);
m_operatorMap.insert(data.id, operatorName);
m_ui->operatorComboBox->addItem(operatorName, data.id);
m_ui->operatorComboBox->model()->sort(0);
break;
}
case DataModification::eModified: {
Q_ASSERT(m_operatorMap.contains(data.id()));
const QString operatorName = QString::fromStdString(data.name());
m_operatorMap.insert(data.id(), operatorName);
int i = m_ui->operatorComboBox->findData(data.id());
Q_ASSERT(m_operatorMap.contains(data.id));
const QString operatorName = QString::fromStdString(data.name);
m_operatorMap.insert(data.id, operatorName);
int i = m_ui->operatorComboBox->findData(data.id);
Q_ASSERT(i != -1);
m_ui->operatorComboBox->setItemText(i, operatorName);
m_ui->operatorComboBox->model()->sort(0);
@@ -150,15 +150,15 @@ void AudioSettingsDialog::onOperatorChanged(const OperatorManagement::User& data
void AudioSettingsDialog::onCnrTvcProfileChanged(const CnrTvcProfile& data, DataModification modType)
{
if (m_session->exerciseId() == data.exerciseId())
if (m_session->exerciseId() == data.exerciseId)
{
if (modType == DataModification::eRemoved)
{
m_cnrTvcProfileMap.remove(data.id());
m_cnrTvcProfileMap.remove(data.id);
}
else
{
m_cnrTvcProfileMap.insert(data.id(), data);
m_cnrTvcProfileMap.insert(data.id, data);
fillOperatorList();
}
}
@@ -170,12 +170,12 @@ void AudioSettingsDialog::fillOperatorList()
for (const auto& rc : std::as_const(m_cnrTvcProfileMap))
{
if ((rc.exerciseId() != m_session->exerciseId()) ||
(rc.operatorId() != m_ui->operatorComboBox->currentData().toInt()))
if ((rc.exerciseId != m_session->exerciseId()) ||
(rc.operatorId != m_ui->operatorComboBox->currentData().toInt()))
continue;
newStreamData.reserve(rc.data().size());
for (const CnrTvcProfileData& profileEntry : rc.data())
newStreamData.reserve(rc.data.size());
for (const CnrTvcProfileData& profileEntry : rc.data)
newStreamData += toStreamData(profileEntry);
break;
@@ -264,12 +264,12 @@ bool AudioSettingsDialog::applyRemove()
for (const auto& profile : std::as_const(m_cnrTvcProfileMap))
{
if (profile.operatorId() != m_operatorId)
if (profile.operatorId != m_operatorId)
continue;
removeRequest.id(profile.id());
removeRequest.id = profile.id;
break;
}
if (removeRequest.id() <= 0)
if (removeRequest.id <= 0)
return true;
m_requestHelper->startSingleRequest(
@@ -285,23 +285,23 @@ bool AudioSettingsDialog::applyModify()
for (const auto& profile : std::as_const(m_cnrTvcProfileMap))
{
if (profile.operatorId() != m_operatorId)
if (profile.operatorId != m_operatorId)
continue;
modifyRequest.id(profile.id());
modifyRequest.id = profile.id;
break;
}
modifyRequest.exerciseId(m_session->exerciseId());
modifyRequest.operatorId(m_operatorId);
modifyRequest.exerciseId = m_session->exerciseId();
modifyRequest.operatorId = m_operatorId;
const QVector<StreamData> allocatedList = m_modelAllocated->getStreamDataVector();
modifyRequest.data().reserve(allocatedList.size());
modifyRequest.data.reserve(allocatedList.size());
for (const StreamData& stream : allocatedList)
{
CnrTvcProfileData circuitData;
circuitData.radioSystemId(stream.bIsCnr ? RadioSystem::Cnr : RadioSystem::Tvc);
circuitData.radioCircuitId(stream.topicId);
modifyRequest.data().push_back(std::move(circuitData));
circuitData.radioSystemId = stream.bIsCnr ? RadioSystem::Cnr : RadioSystem::Tvc;
circuitData.radioCircuitId = stream.topicId;
modifyRequest.data.push_back(std::move(circuitData));
}
m_requestHelper->startSingleRequest(
@@ -383,18 +383,18 @@ void AudioSettingsDialog::onEntryRemoved(const StreamData& stream)
StreamData AudioSettingsDialog::toStreamData(const CnrTvcProfileData& profileEntry) const
{
int configId = profileEntry.radioCircuitId();
int configId = profileEntry.radioCircuitId;
StreamData streamData;
streamData.topicId = configId;
if (profileEntry.radioSystemId() == RadioSystem::Cnr)
if (profileEntry.radioSystemId == RadioSystem::Cnr)
{
streamData.name = QString::fromStdString(m_avmDtc->cnrConfig(configId).radioCircuit());
streamData.name = QString::fromStdString(m_avmDtc->cnrConfig(configId).radioCircuit);
streamData.bIsCnr = true;
}
else
{
streamData.name = QString::fromStdString(m_avmDtc->tvcConfig(configId).radioCircuit());
streamData.name = QString::fromStdString(m_avmDtc->tvcConfig(configId).radioCircuit);
streamData.bIsCnr = false;
}
@@ -10,7 +10,8 @@ namespace AudioVideoManagement
{
AllocatedStreamsModel::AllocatedStreamsModel(QObject* parent)
: NGLTreeModel(parent, new NGLTreeItem(QVariant(QLatin1String("root"))), {tr("Allocated")})
: NGLTreeModel(parent, new NGLTreeItem(QVariant(QLatin1String("root"))), {tr("Allocated")}),
m_logger(getLogger("AudioSettingsUsedStreamsModel"))
{
setMimeType(StreamData::mimeType());
}
@@ -19,14 +19,14 @@ struct StreamData : boost::totally_ordered<StreamData>
StreamData() = default;
explicit StreamData(const TvcConfig &tvcConfig)
: name(QString::fromStdString(tvcConfig.radioCircuit()))
, topicId(tvcConfig.id())
: name(QString::fromStdString(tvcConfig.radioCircuit))
, topicId(tvcConfig.id)
, bIsCnr(false)
{}
explicit StreamData(const CnrConfig &cnrConfig)
: name(QString::fromStdString(cnrConfig.radioCircuit()))
, topicId(cnrConfig.id())
: name(QString::fromStdString(cnrConfig.radioCircuit))
, topicId(cnrConfig.id)
, bIsCnr(true)
{}
@@ -21,7 +21,8 @@ AvmSequenceModel::AvmSequenceModel(QObject *parent)
tr("Speed"),
tr("Volume"),
tr("Description")},
parent)
parent),
m_logger(getLogger("AvmSequenceModel"))
{}
void AvmSequenceModel::setTimezoneHoursOffset(int timezoneHoursOffset)
@@ -11,6 +11,7 @@
#include <AudioVideoManagement/avs_dialog.h>
#include <LtsSession/lts_session_data.h>
#include <QtCore/QJsonArray>
#include <QtWidgets/QTreeView>
#include <TopicEditorBase/topic_previewer.h>
#include <boost/optional.hpp>
#include <cmath>
@@ -52,7 +53,8 @@ AvaTimePoint msecsToAvaTimePoint(qint64 msecs)
TopicEditor::TopicEditor(LtsSession::LtsSession* session, const TopicEditorBase::TopicData& data, QWidget* parent)
: TopicEditorBase::TopicEditor(parent), m_session(session), m_avmDataIfc(nullptr),
m_model(new AvmSequenceModel(this)), m_playbackMenu(nullptr), m_ui(new Ui::AVTopicEditor)
m_model(new AvmSequenceModel(this)), m_playbackMenu(nullptr), m_ui(new Ui::AVTopicEditor),
m_logger(getLogger("TopicEditor"))
{
Q_ASSERT(session);
@@ -79,7 +81,7 @@ TopicEditor::TopicEditor(LtsSession::LtsSession* session, const TopicEditorBase:
m_proxyModel->setSourceModel(m_model);
m_ui->tvSequences->setModel(m_proxyModel);
connect(m_ui->tvSequences, &QTreeView::doubleClicked, m_ui->tvSequences->selectionModel(),
&QItemSelectionModel::select);
[this](const QModelIndex &idx) { m_ui->tvSequences->selectionModel()->select(idx, QItemSelectionModel::Toggle); });
connect(m_ui->tvSequences->selectionModel(), &QItemSelectionModel::selectionChanged, this, &TopicEditor::onEnaDisa);
connect(m_ui->pbDelete, &QToolButton::clicked, this, &TopicEditor::onDeleteSequences);
@@ -14,14 +14,14 @@ namespace
bool isMountingPointOfInterest(const InfrastructureManagement::StructureElement& se, bool isAudio)
{
if (se.structureElementTypeId() != InfrastructureManagement::StructureElementType::MountingPoint)
if (se.structureElementTypeId != InfrastructureManagement::StructureElementType::MountingPoint)
return false;
if (se.mountingPointTypeId() == InfrastructureManagement::MountingPointType::IndoorCamera ||
se.mountingPointTypeId() == InfrastructureManagement::MountingPointType::OutdoorCamera)
if (se.mountingPointTypeId == InfrastructureManagement::MountingPointType::IndoorCamera ||
se.mountingPointTypeId == InfrastructureManagement::MountingPointType::OutdoorCamera)
return true;
if (isAudio && se.mountingPointTypeId() == InfrastructureManagement::MountingPointType::AnnouncementUnit)
if (isAudio && se.mountingPointTypeId == InfrastructureManagement::MountingPointType::AnnouncementUnit)
return true;
return false;
@@ -47,13 +47,12 @@ AvailableStreamsModel::AvailableStreamsModel(const std::shared_ptr<Interface::Dt
const std::shared_ptr<InfrastructureManagement::Interface::Dtc>& ismDtc,
LtsSession::LtsSession* session, StreamNameMapping* streamNameMapping,
QObject* parent, bool isAudio)
: NGLTreeModel(parent, new NGLTreeItem(QVariant(), QIcon()), ,
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()){tr("Available Streams")}),
m_isAudio(isAudio), m_avmDtc(avmDtc), m_ismDtc(ismDtc), m_session(session), m_streamNameMapping(streamNameMapping)
: NGLTreeModel(parent, new NGLTreeItem(QVariant(), QIcon()), {tr("Available Streams")}), m_isAudio(isAudio),
m_avmDtc(avmDtc), m_ismDtc(ismDtc), m_session(session), m_streamNameMapping(streamNameMapping),
m_logger(getLogger("AvailableStreamsModel"))
{
Q_ASSERT(ismDtc);
Q_ASSERT(streamNameMapping);
qRegisterMetaTypeStreamOperators<StreamModelData>("StreamModelData");
qRegisterMetaType<StreamModelData>("StreamModelData");
setMimeType(s_MimeType);
@@ -175,7 +174,7 @@ void AvailableStreamsModel::initModel()
const auto& buildings = m_ismDtc->mainStructureElements();
for (const auto& building : buildings)
{
for (const auto& mountingPoint : building.elements())
for (const auto& mountingPoint : building.elements)
{
if (!isMountingPointOfInterest(mountingPoint, m_isAudio))
continue;
@@ -183,7 +182,7 @@ void AvailableStreamsModel::initModel()
bool isMounted = false;
for (const auto& mountedAsset : mountedAssets)
{
if (mountedAsset.structureElementId() == mountingPoint.id())
if (mountedAsset.structureElementId == mountingPoint.id)
{
isMounted = true;
break;
@@ -193,11 +192,11 @@ void AvailableStreamsModel::initModel()
if (!isMounted)
continue;
StreamModelData item;
item.name = m_streamNameMapping->displayName(mountingPoint.id());
item.mountingPointId = mountingPoint.id();
item.name = m_streamNameMapping->displayName(mountingPoint.id);
item.mountingPointId = mountingPoint.id;
item.isGroup = false;
if (mountingPoint.mountingPointTypeId() == InfrastructureManagement::MountingPointType::IndoorCamera)
if (mountingPoint.mountingPointTypeId == InfrastructureManagement::MountingPointType::IndoorCamera)
toAddIndoor.push_back(item);
else
toAddOutdoor.push_back(item);
@@ -209,12 +208,12 @@ void AvailableStreamsModel::initModel()
const auto& mvsStreams = m_avmDtc->videoTeams();
for (const auto& videoTeam : mvsStreams)
{
if (videoTeam.exerciseId() != m_session->exerciseId())
if (videoTeam.exerciseId != m_session->exerciseId())
continue;
DEBUG_LOG(m_logger) << "add new videoteam" << videoTeam;
StreamModelData item;
item.name = QString::fromStdString(videoTeam.streamName().c_str());
item.mountingPointId = -1 * videoTeam.id();
item.name = QString::fromStdString(videoTeam.streamName.c_str());
item.mountingPointId = -1 * videoTeam.id;
item.isGroup = false;
toAddMvs.push_back(item);
@@ -248,22 +247,22 @@ StreamModelData StreamModelData::createFromServiceItem(const AvMenuEntry& entry,
const QMap<int, VideoTeam>& videoTeamList)
{
StreamModelData data;
data.id = entry.id();
data.parentId = entry.parentId();
data.isGroup = entry.isGroup();
if (entry.isGroup())
data.name = QString::fromStdString(entry.name().get());
data.id = entry.id;
data.parentId = entry.parentId;
data.isGroup = entry.isGroup;
if (entry.isGroup)
data.name = QString::fromStdString(entry.name.get());
else
{
if (entry.mountingPointId().is_set() && (entry.mountingPointId().get() > 0))
if (entry.mountingPointId.has_value() && (entry.mountingPointId.get() > 0))
{
data.mountingPointId = entry.mountingPointId().get();
data.name = streamNameMapping->displayName(entry.mountingPointId().get());
data.mountingPointId = entry.mountingPointId.get();
data.name = streamNameMapping->displayName(entry.mountingPointId.get());
}
else
{
data.mountingPointId = entry.mountingPointId().get();
data.name = QString::fromStdString(videoTeamList.value(entry.mountingPointId().get() * -1).streamName());
data.mountingPointId = entry.mountingPointId.get();
data.name = QString::fromStdString(videoTeamList.value(entry.mountingPointId.get() * -1).streamName);
}
}
@@ -15,7 +15,7 @@ namespace AudioVideoManagement
ChooseMenu::ChooseMenu(Interface::Dtc* dtc, AvsMenus* avsMenus, QWidget* parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel), m_dtc(dtc), m_avsMenus(avsMenus),
m_ui(new Ui::ChooseMenuStruct)
m_ui(new Ui::ChooseMenuStruct), m_logger(getLogger("ChooseMenu"))
{
Q_ASSERT(dtc);
Q_ASSERT(avsMenus);
@@ -47,22 +47,22 @@ void ChooseMenu::onMenuStructChanged(const MenuStruct& data, DataModification mo
switch (modType)
{
case DataModification::eAdded: {
if (data.isAudio())
m_ui->cbAudio->addItem(QString::fromStdString(data.name()), data.id());
if (data.isAudio)
m_ui->cbAudio->addItem(QString::fromStdString(data.name), data.id);
else
m_ui->cbVideo->addItem(QString::fromStdString(data.name()), data.id());
m_ui->cbVideo->addItem(QString::fromStdString(data.name), data.id);
break;
}
case DataModification::eRemoved: {
if (data.isAudio())
if (data.isAudio)
{
int index = m_ui->cbAudio->findData(data.id());
int index = m_ui->cbAudio->findData(data.id);
m_ui->cbAudio->removeItem(index);
}
else
{
int index = m_ui->cbVideo->findData(data.id());
int index = m_ui->cbVideo->findData(data.id);
m_ui->cbVideo->removeItem(index);
}
break;
@@ -1,6 +1,7 @@
#include "avm_menu_edit.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "ui_avm_menu_edit.h"
@@ -13,6 +14,7 @@ MenuEdit::MenuEdit(QWidget* parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel), m_ftc(nullptr),
m_ui(new Ui::MenuEdit), m_availStreamsModel(nullptr), m_usedStreamsModel(nullptr), m_isAudio(false),
m_requestHelper(new LtsUtils::RequestHelper(this))
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
m_ui->setupUi(this);
}
@@ -44,8 +46,8 @@ bool MenuEdit::init(LtsSession::LtsSession* session, const std::shared_ptr<Audio
}
m_ftc = ftc;
m_isAudio = ms.isAudio();
m_name = QString::fromStdString(ms.name());
m_isAudio = ms.isAudio;
m_name = QString::fromStdString(ms.name);
m_availStreamsModel = new AvailableStreamsModel(dtc, ismDtc, session, streamNameMapping, this, m_isAudio);
m_ui->availTreeView->setModel(m_availStreamsModel);
@@ -69,7 +71,7 @@ bool MenuEdit::init(LtsSession::LtsSession* session, const std::shared_ptr<Audio
else
setOnlineHelpFilename(QStringLiteral("Situation-Video_Menu"));
if (ms.id() <= 0)
if (ms.id <= 0)
m_buttonBox->setButtonVisible(LtsWidgets::DialogButton::Apply, false);
return true;
@@ -78,7 +80,7 @@ bool MenuEdit::init(LtsSession::LtsSession* session, const std::shared_ptr<Audio
bool MenuEdit::apply()
{
MenuStruct ms = m_usedStreamsModel->getMenuStruct();
ms.isAudio(m_isAudio);
ms.isAudio = m_isAudio;
bool ret = m_requestHelper->startSingleRequest([this, ms]() { return m_ftc->modifyMenuStructRequest(ms, this); });
@@ -1,6 +1,7 @@
#include "avm_menu_edit_view.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "avm_menu_edit.h"
#include "avm_new_menu_struct.h"
@@ -19,6 +20,7 @@ MenuEditView::MenuEditView(const QString& menuGroup, LtsSession::LtsSession* ses
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly), m_menuGroup(menuGroup), m_model(nullptr),
m_isAudio(false), m_dtc(nullptr), m_ftc(nullptr), m_session(session),
m_requestHelper(new LtsUtils::RequestHelper(this)), m_ui(new Ui::MenuEditView)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
m_ui->setupUi(this);
m_ui->widget->setSelectionMode(QAbstractItemView::SingleSelection);
@@ -102,8 +104,8 @@ void MenuEditView::onAddMenuStruct()
connect(newDialog, &NewMenuStruct::newName, this, [this](const QString& name) {
MenuStruct ms;
ms.name(name.toStdString());
ms.isAudio(m_isAudio);
ms.name = name.toStdString();
ms.isAudio = m_isAudio;
MenuEdit* dialog = new MenuEdit(this);
dialog->init(m_session, m_dtc, m_ftc, m_ismDtc, m_streamNameMapping, ms);
@@ -123,15 +125,15 @@ void MenuEditView::onEditMenuStruct()
return;
AudioVideoManagement::MenuStruct ms = m_model->getRowData(row);
ms.isAudio(m_isAudio);
ms.isAudio = m_isAudio;
DEBUG_LOG(m_logger) << "---onEditMenuStruct () "
<< " id: " << ms.id() << " name: " << ms.name();
<< " id: " << ms.id << " name: " << ms.name;
MenuEdit* dialog = new MenuEdit(this);
dialog->init(m_session, m_dtc, m_ftc, m_ismDtc, m_streamNameMapping, ms);
addDialog(dialog, m_menuGroup, QLatin1String("avmMenuEdit") + QString::number(ms.id()),
addDialog(dialog, m_menuGroup, QLatin1String("avmMenuEdit") + QString::number(ms.id),
LtsWidgets::LayoutArea::eDialogTab);
}
@@ -141,7 +143,7 @@ void MenuEditView::onRemoveMenuStruct()
if (!idx.isValid())
return;
const AudioVideoManagement::MenuStruct ms = m_model->getRowData(idx.row());
const Core::RemoveElementRequest req(ms.id());
const Core::RemoveElementRequest req(ms.id);
m_requestHelper->startSingleRequest([req, this]() { return m_ftc->removeMenuStructRequest(req, this); });
if (m_model->rowCount() == 0)
@@ -1,6 +1,7 @@
#include "avm_menu_view_model.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include <FileManagement/flm_translation.h>
#include <QtCore/QJsonArray>
@@ -13,6 +14,7 @@ namespace AudioVideoManagement
MenuViewModel::MenuViewModel(QObject* parent)
: LtsWidgets::LtsAbstractTableModel<AudioVideoManagement::MenuStruct>({tr("Id"), tr("Name")}, parent),
m_isAudio(false), m_dtc(nullptr)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
}
@@ -38,9 +40,9 @@ QVariant MenuViewModel::data(const QModelIndex& index, int role) const
switch (index.column())
{
case 0:
return ms.id();
return ms.id;
case 1:
return QString::fromStdString(ms.name());
return QString::fromStdString(ms.name);
default:
break;
}
@@ -51,9 +53,9 @@ QVariant MenuViewModel::data(const QModelIndex& index, int role) const
bool MenuViewModel::isFiltered(const MenuStruct& data, DataModification modType) const
{
Q_UNUSED(modType);
if (data.isAudio() != m_isAudio)
if (data.isAudio != m_isAudio)
return true;
if (data.isDefault())
if (data.isDefault)
return true;
return false;
}
@@ -70,22 +72,22 @@ QByteArray MenuViewModel::modelToJson(int row) const
const AudioVideoManagement::MenuStruct& menuStruct = m_vecData.at(row);
obj[QStringLiteral("id")] = 0;
obj[QStringLiteral("isAudio")] = menuStruct.isAudio();
obj[QStringLiteral("isDefault")] = menuStruct.isDefault();
obj[QStringLiteral("name")] = QString::fromStdString(menuStruct.name());
obj[QStringLiteral("isAudio")] = menuStruct.isAudio;
obj[QStringLiteral("isDefault")] = menuStruct.isDefault;
obj[QStringLiteral("name")] = QString::fromStdString(menuStruct.name);
QJsonArray arrData;
for (const AudioVideoManagement::AvMenuEntry& avMenuEntry : menuStruct.menuEntries())
for (const AudioVideoManagement::AvMenuEntry& avMenuEntry : menuStruct.menuEntries)
{
QJsonObject innerData;
innerData[QStringLiteral("id")] = avMenuEntry.id();
innerData[QStringLiteral("isGroup")] = avMenuEntry.isGroup();
if (avMenuEntry.mountingPointId().is_set())
innerData[QStringLiteral("mountingPointId")] = avMenuEntry.mountingPointId().get();
if (avMenuEntry.name().is_set())
innerData[QStringLiteral("name")] = QString::fromStdString(avMenuEntry.name().get());
innerData[QStringLiteral("parentId")] = avMenuEntry.parentId();
innerData[QStringLiteral("rowId")] = avMenuEntry.rowId();
innerData[QStringLiteral("id")] = avMenuEntry.id;
innerData[QStringLiteral("isGroup")] = avMenuEntry.isGroup;
if (avMenuEntry.mountingPointId.has_value())
innerData[QStringLiteral("mountingPointId")] = avMenuEntry.mountingPointId.get();
if (avMenuEntry.name.has_value())
innerData[QStringLiteral("name")] = QString::fromStdString(avMenuEntry.name.get());
innerData[QStringLiteral("parentId")] = avMenuEntry.parentId;
innerData[QStringLiteral("rowId")] = avMenuEntry.rowId;
arrData += innerData;
}
@@ -101,31 +103,31 @@ QVector<AudioVideoManagement::MenuStruct> MenuViewModel::jsonToMenuStructs(const
AudioVideoManagement::MenuStruct menuStruct;
const QJsonDocument doc(QJsonDocument::fromJson(content));
const QJsonObject obj(doc.object());
menuStruct.id(0);
menuStruct.isAudio(obj[QStringLiteral("isAudio")].toBool());
menuStruct.isDefault(obj[QStringLiteral("isDefault")].toBool());
menuStruct.name(obj[QStringLiteral("name")].toString().toStdString());
menuStruct.id = 0;
menuStruct.isAudio = obj[QStringLiteral("isAudio")].toBool();
menuStruct.isDefault = obj[QStringLiteral("isDefault")].toBool();
menuStruct.name = obj[QStringLiteral("name")].toString().toStdString();
const QJsonArray arrEntry(obj.value(QStringLiteral("menuEntries")).toArray());
menuStruct.menuEntries().resize(arrEntry.size());
menuStruct.menuEntries.resize(arrEntry.size());
INFO_LOG(m_logger) << "arrEntry.size()=" << arrEntry.size();
for (int j = 0; j < arrEntry.size(); ++j)
{
const QJsonObject objEntry(arrEntry.at(j).toObject());
AudioVideoManagement::AvMenuEntry avMenuEntry;
avMenuEntry.id(-10000000 + objEntry[QStringLiteral("id")].toInt());
avMenuEntry.isGroup(objEntry[QStringLiteral("isGroup")].toBool());
avMenuEntry.mountingPointId(objEntry[QStringLiteral("mountingPointId")].toInt());
avMenuEntry.id = -10000000 + objEntry[QStringLiteral("id")].toInt();
avMenuEntry.isGroup = objEntry[QStringLiteral("isGroup")].toBool();
avMenuEntry.mountingPointId = objEntry[QStringLiteral("mountingPointId")].toInt();
if (objEntry.contains(QStringLiteral("name")))
avMenuEntry.name().set(objEntry[QStringLiteral("name")].toString().toStdString());
avMenuEntry.name.set(objEntry[QStringLiteral("name")].toString().toStdString());
if (objEntry[QStringLiteral("isGroup")].toBool())
avMenuEntry.parentId(0);
avMenuEntry.parentId = 0;
else
avMenuEntry.parentId(-10000000 + objEntry[QStringLiteral("parentId")].toInt());
avMenuEntry.rowId(objEntry[QStringLiteral("rowId")].toInt());
avMenuEntry.parentId = -10000000 + objEntry[QStringLiteral("parentId")].toInt();
avMenuEntry.rowId = objEntry[QStringLiteral("rowId")].toInt();
menuStruct.menuEntries()[j] = avMenuEntry;
menuStruct.menuEntries[j] = avMenuEntry;
}
result.append(menuStruct);
@@ -2,6 +2,7 @@
#include "avm_new_menu_struct.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "ui_avm_new_menu_struct.h"
@@ -13,6 +14,7 @@ namespace AudioVideoManagement
NewMenuStruct::NewMenuStruct(QWidget *parent)
: LtsWidgets::LtsFramelessDialog(parent, LtsWidgets::Behaviour::Modal)
, m_ui(new Ui::NewMenuStruct)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
m_ui->setupUi(this);
m_ui->ltsDialogButtonBox->getButton(LtsWidgets::DialogButton::Ok)->hide();
@@ -1,6 +1,7 @@
#include "avm_playback_menu.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "TopicEditor/avm_sequence_model.h"
@@ -269,6 +270,7 @@ QueryTimeline::QueryTimeline(const AvaStream& stream, const AvaTimePoint& start,
AvmPlaybackMenu::AvmPlaybackMenu(QWidget* parent)
: QWidget(parent), m_ui(new Ui::Playback), m_requestHelper(new LtsUtils::RequestHelper(this))
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
}
@@ -563,7 +565,7 @@ bool AvmPlaybackMenu::init(LtsSession::LtsSession* session, AvaSession* avaSessi
const QChar tz = LtsUtils::OperatorSettings::getInstance()
->value(QStringLiteral("TimeSettings"), QStringLiteral("TimeZone"), QChar(QLatin1Char('Z')))
.toChar();
int idx = m_ui->cbTimeZone->findData(tz.isNull() ? 0 : tz);
int idx = m_ui->cbTimeZone->findData(tz.isNull() ? 0 : tz.unicode());
if (idx >= 0)
m_ui->cbTimeZone->setCurrentIndex(idx);
@@ -1173,41 +1175,41 @@ QString AvmPlaybackMenu::getInternalStreamName() const
void AvmPlaybackMenu::selectMarker(const MarkerManagement::Marker& marker)
{
if (marker.id() == 0)
if (marker.id == 0)
return;
QSignalBlocker blocker(m_ui->cbMarkerStreams);
(void)blocker;
const auto& rowData = marker;
DEBUG_LOG(m_logger) << "AvmPlaybackMenu::onMarkerClicked name = " << QString::fromStdString(rowData.name())
<< " note = " << QString::fromStdString(rowData.note());
DEBUG_LOG(m_logger) << "AvmPlaybackMenu::onMarkerClicked name = " << QString::fromStdString(rowData.name)
<< " note = " << QString::fromStdString(rowData.note);
bool selectMarkerStream = false;
for (const MarkerManagement::MarkerDescription& desc : rowData.descriptions())
for (const MarkerManagement::MarkerDescription& desc : rowData.descriptions)
{
if ((desc.markerType() == MarkerManagement::MarkerType::Video && m_isAudio == false) ||
(desc.markerType() == MarkerManagement::MarkerType::Audio && m_isAudio == true))
if ((desc.markerType == MarkerManagement::MarkerType::Video && m_isAudio == false) ||
(desc.markerType == MarkerManagement::MarkerType::Audio && m_isAudio == true))
{
m_ui->cbMarkerStreams->clear();
break;
}
}
for (const MarkerManagement::MarkerDescription& desc : rowData.descriptions())
for (const MarkerManagement::MarkerDescription& desc : rowData.descriptions)
{
DEBUG_LOG(m_logger) << " description = " << QString::fromStdString(desc.content())
<< " desc.markerType()=" << desc.markerType();
if ((desc.markerType() == MarkerManagement::MarkerType::Video && m_isAudio == false) ||
(desc.markerType() == MarkerManagement::MarkerType::Audio && m_isAudio == true))
DEBUG_LOG(m_logger) << " description = " << QString::fromStdString(desc.content)
<< " desc.markerType()=" << desc.markerType;
if ((desc.markerType == MarkerManagement::MarkerType::Video && m_isAudio == false) ||
(desc.markerType == MarkerManagement::MarkerType::Audio && m_isAudio == true))
{
AvaStream avaStream;
avaStream.type = m_isAudio ? AvaStreamType::Audio : AvaStreamType::Video;
avaStream.source = AvaStreamSource::Server;
AvaStream selectedStream;
const QStringList streams(QString::fromStdString(desc.content()).split(QLatin1Char(',')));
const QStringList streams(QString::fromStdString(desc.content).split(QLatin1Char(',')));
for (const QString& sr : streams)
{
@@ -1239,7 +1241,7 @@ void AvmPlaybackMenu::selectMarker(const MarkerManagement::Marker& marker)
}
}
qint64 time = rowData.timeStamp() - rowData.timeStampOffset();
qint64 time = rowData.timeStamp - rowData.timeStampOffset;
DEBUG_LOG(m_logger) << "marker time: " << time << " ("
<< QDateTime::fromMSecsSinceEpoch(time).toString(QStringLiteral("dd.MM.yy HH:mm:ss.zzz"))
@@ -1253,7 +1255,7 @@ void AvmPlaybackMenu::selectMarker(const MarkerManagement::Marker& marker)
if (selectMarkerStream)
onMarkerStreamSelected();
emit markerSelected(QString::fromStdString(rowData.note()));
emit markerSelected(QString::fromStdString(rowData.note));
m_ui->tavIntervals->selectionModel()->clear();
}
@@ -1288,8 +1290,8 @@ void AvmPlaybackMenu::onSetMarkerClicked()
MarkerManagement::Marker mrk;
MarkerManagement::MarkerDescription ma;
ma.markerType(m_isAudio ? MarkerManagement::MarkerType::Audio : MarkerManagement::MarkerType::Video);
auto& descriptions = mrk.descriptions();
ma.markerType = m_isAudio ? MarkerManagement::MarkerType::Audio : MarkerManagement::MarkerType::Video;
auto& descriptions = mrk.descriptions;
QStringList streamList;
streamList.reserve(m_selectedStreams->size());
const QLatin1Char star = QLatin1Char('*');
@@ -1299,12 +1301,12 @@ void AvmPlaybackMenu::onSetMarkerClicked()
streamList += stream.internalName;
streamList.last().append(star);
}
ma.content() = streamList.join(QStringLiteral(", ")).toStdString();
ma.content = streamList.join(QStringLiteral(", ")).toStdString();
descriptions.resize(descriptions.size() + 1, ma);
mrk.note(note.toStdString());
mrk.timeStamp(m_timeControl->timeMSec());
mrk.timeStampOffset(0);
mrk.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
mrk.note = note.toStdString();
mrk.timeStamp = m_timeControl->timeMSec();
mrk.timeStampOffset = 0;
mrk.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
m_requestHelper->startSingleRequest([mrk, this]() { return m_mrkDataIfc->setMarker(mrk, this); });
}
@@ -168,6 +168,7 @@ class AvmPlaybackMenu : public QWidget, protected MarkerManagement::Interface::F
void applyAvsVolume();
PlaybackAppHandle m_playbackApp;
NGL::INGLLogger& m_logger;
bool m_isAudio = false;
StreamNameMapping* m_streamNameMapping = nullptr;
boost::optional<QString> m_presetStreamName;
@@ -3,6 +3,7 @@
#include "avm_playback_menu_dialog.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
namespace AudioVideoManagement
{
@@ -11,6 +12,7 @@ AvmPlaybackMenuDialog::AvmPlaybackMenuDialog(bool isAudio, QWidget *parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly)
, m_isAudio(isAudio)
, m_ui(new Ui::AvmPlaybackMenuDialog)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
m_ui->setupUi(this);
if (m_isAudio)
@@ -1,12 +1,14 @@
#include "avm_used_streams_model.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "avm_available_streams_model.h"
#include <AudioVideoManagement/stream_name_mapping.h>
#include <QMimeData>
#include <QtCore/QSet>
#include <QtCore/QIODevice>
#include <nglwidgets/ngltreeitem.h>
#include <utility>
@@ -20,6 +22,7 @@ UsedStreamsModel::UsedStreamsModel(const std::shared_ptr<Interface::Dtc> avmDtc,
: NGLTreeModel(parent, nullptr, {tr("Streams")}), m_avmDtc(avmDtc), m_ismDtc(ismDtc), m_dummyId(-10000000),
m_menuStruct(ms), m_streamNameMapping(streamNameMapping)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
Q_ASSERT(streamNameMapping);
initModel();
@@ -225,21 +228,21 @@ static void getItems(const NGLTreeItem* item, int rowId, int parentId,
StreamModelData s = item->data().value<StreamModelData>();
AvMenuEntry me;
me.id(s.id ? s.id : newId++);
me.parentId(parentId);
me.isGroup(s.isGroup);
me.id = s.id ? s.id : newId++;
me.parentId = parentId;
me.isGroup = s.isGroup;
if (s.isGroup)
me.name().set(s.name.toStdString());
me.name.set(s.name.toStdString());
else
me.mountingPointId(s.mountingPointId);
me.rowId(rowId);
me.mountingPointId = s.mountingPointId;
me.rowId = rowId;
contToAdd.push_back(me);
if (s.isGroup)
{
for (int row = 0; row < item->childCount(); ++row)
getItems(item->child(row), row + 1, me.id(), contToAdd, newId);
getItems(item->child(row), row + 1, me.id, contToAdd, newId);
}
}
}
@@ -247,12 +250,12 @@ static void getItems(const NGLTreeItem* item, int rowId, int parentId,
MenuStruct UsedStreamsModel::getMenuStruct() const
{
MenuStruct ms;
ms.id(m_menuStruct.id());
ms.name(m_menuStruct.name());
ms.id = m_menuStruct.id;
ms.name = m_menuStruct.name;
int newId = -10000000;
for (int row = 0; row < m_rootItem->childCount(); ++row)
getItems(m_rootItem->child(row), row + 1, ms.id(), ms.menuEntries(), newId);
getItems(m_rootItem->child(row), row + 1, ms.id, ms.menuEntries, newId);
return ms;
}
@@ -264,22 +267,22 @@ void UsedStreamsModel::insertChildren(NGLTreeItem* parent, int parentId,
QMap<int, int> rowIds;
for (const AudioVideoManagement::AvMenuEntry& me : entries)
{
if (me.parentId() != parentId)
if (me.parentId != parentId)
continue;
data.setValue(StreamModelData::createFromServiceItem(me, m_streamNameMapping, m_avmDtc->videoTeams()));
NGLTreeItem* treeItem = new NGLTreeItem(data);
auto hierIt = rowIds.insert(me.rowId(), me.rowId());
auto hierIt = rowIds.insert(me.rowId, me.rowId);
const int rowToInsert = std::distance(rowIds.begin(), hierIt);
parent->insertChild(rowToInsert, treeItem);
if (me.isGroup())
if (me.isGroup)
{
DEBUG_LOG(m_logger) << "insertChildren" << me.mountingPointId() << me.name();
insertChildren(treeItem, me.id(), entries);
DEBUG_LOG(m_logger) << "insertChildren" << me.mountingPointId << me.name;
insertChildren(treeItem, me.id, entries);
}
}
}
@@ -472,7 +475,7 @@ bool UsedStreamsModel::initModel()
data.setValue(ms);
setRootItem(new NGLTreeItem(data));
insertChildren(m_rootItem, m_menuStruct.id(), m_menuStruct.menuEntries());
insertChildren(m_rootItem, m_menuStruct.id, m_menuStruct.menuEntries);
connect(m_ismDtc.get(), &InfrastructureManagement::Interface::Dtc::mainStructureElementChanged, this,
&UsedStreamsModel::onDataChanged);
connect(m_avmDtc.get(), &AudioVideoManagement::Interface::Dtc::videoTeamChanged, this,
@@ -518,7 +521,7 @@ void UsedStreamsModel::onDataChanged(const InfrastructureManagement::MainStructu
{
beginResetModel();
INFO_LOG(m_logger) << "onDataChanged m_rootItem->childCount()" << m_rootItem->childCount()
<< " data.elements().size()=" << data.elements().size();
<< " data.elements().size()=" << data.elements.size();
switch (modType)
{
@@ -526,12 +529,12 @@ void UsedStreamsModel::onDataChanged(const InfrastructureManagement::MainStructu
break;
case DataModification::eModified:
case DataModification::eAdded:
for (const InfrastructureManagement::StructureElement& se : data.elements())
for (const InfrastructureManagement::StructureElement& se : data.elements)
{
INFO_LOG(m_logger) << "se.id()" << se.id() << " se.displayName()" << se.displayName()
INFO_LOG(m_logger) << "se.id()" << se.id << " se.displayName()" << se.displayName
<< " m_rootItem->childCount()" << m_rootItem->childCount();
const QString newName = QString::fromStdString(se.displayName());
updateStreamNames(se.id(), newName, m_rootItem);
const QString newName = QString::fromStdString(se.displayName);
updateStreamNames(se.id, newName, m_rootItem);
}
}
endResetModel();
@@ -551,10 +554,10 @@ void UsedStreamsModel::onDataChangedMvs(const VideoTeam& data, const DataModific
case DataModification::eModified:
case DataModification::eAdded:
INFO_LOG(m_logger) << "se.id()" << data.id() << " se.displayName()" << data.streamName()
INFO_LOG(m_logger) << "se.id()" << data.id << " se.displayName()" << data.streamName
<< " m_rootItem->childCount()" << m_rootItem->childCount();
const QString newName = QString::fromStdString(data.streamName());
updateStreamNames(-1 * data.id(), newName, m_rootItem);
const QString newName = QString::fromStdString(data.streamName);
updateStreamNames(-1 * data.id, newName, m_rootItem);
}
endResetModel();
emit modelDataChanged();
@@ -1,6 +1,7 @@
#include "topic_replay.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include <AudioVideoManagement/ava_control.h>
#include <AudioVideoManagement/ava_session.h>
@@ -43,6 +44,7 @@ class TopicReplay::ExportScript : public QObject
};
TopicReplay::TopicReplay(DataInterface* dataIfc, bool isAudio) : m_isAudio(isAudio), m_dataIfc(dataIfc)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
DEBUG_LOG(m_logger) << "TopicReplay::TopicReplay()";
Q_ASSERT(dataIfc);