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

@@ -72,6 +72,7 @@ if(QT6_GUI_AVAILABLE)
PreScriptTimelineGuiPluginInterface
PreGuiCommon
PreGuiScriptCommon
AvmShared
LtsTimeline
svcPreCommon
${Qt6_Widgets}
@@ -1,6 +1,6 @@
#include "pre_screen.h"
#include <LtsUtilsGui/LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/dds_vector_to_pixmap.h>
#include <LtsUtilsGui/LtsUtilsGuiDds/dds_vector_to_pixmap.h>
#include <QtGui/QPainter>
#include <QStyleOption>
@@ -33,7 +33,7 @@ void Screen::setBgColor(const QColor &color)
void Screen::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
opt.initFrom(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
@@ -2,6 +2,7 @@
#include "pre_script_dialog.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include <utility>
#include <QtCore/QRegularExpression>
#include "LtsMultiMonitor/lts_screen_base.h"
@@ -45,17 +46,17 @@
#include <FilterManagement/flt_aes_plugin_interface.h>
#include <FilterManagement/flt_building_cmpnt_plugin_interface.h>
#include <MarkerManagement/mrk_gui_plugin_interface.h>
#include <MarkerManagement/Common/mrk_apply_filter.h>
#include <Plugins/MarkerManagement/Gui/Common/mrk_apply_filter.h>
#include <OperatorManagement/opm_data_plugin_interface.h>
#include <PlanOverlays/plan_overlays_plugin_interface.h>
#include <PresentationManagement/Common/pre_edit_dialog.h>
#include <PresentationManagement/Common/topic_assignment.h>
#include <PresentationManagement/Common/toolz.h>
#include <PresentationManagement/Script/Common/topic_designer.h>
#include <PresentationManagement/Script/Common/ScriptChooser/script_chooser.h>
#include <PresentationManagement/Script/Common/TakeHomePackageGenerator/export.h>
#include <PresentationManagement/Script/Common/TakeHomePackageGenerator/export_process.h>
#include <PresentationManagement/Script/Common/TakeHomePackageGenerator/dvd_writer.h>
#include <PresentationManagement/Gui/Common/pre_edit_dialog.h>
#include <PresentationManagement/Gui/Common/topic_assignment.h>
#include <PresentationManagement/Gui/Common/toolz.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/topic_designer.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/ScriptChooser/script_chooser.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/TakeHomePackageGenerator/export.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/TakeHomePackageGenerator/export_process.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/TakeHomePackageGenerator/dvd_writer.h>
#include <ReportManagement/rep_gui_plugin_interface.h>
#include <SituationMapPlugin/situation_map_gui_plugin_interface.h>
#include <SituationMapPlugin/situation_map_script_filter_gui_plugin_interface.h>
@@ -105,16 +106,16 @@ TopicEditorBase::TopicData ScriptTimelineDialog::topicDataFromContent(
TopicEditorBase::TopicData data;
data.id = topicId;
data.topicType = topicType;
data.startTime = content.startTime();
data.duration = content.duration();
data.description = QString::fromStdString(content.description());
data.channel = QString::fromStdString(content.channel());
data.properties = QJsonDocument::fromJson(QByteArray(content.attributes().c_str(), content.attributes().size())).object();
data.index = content.index();
data.x = content.x();
data.y = content.y();
data.h = content.height();
data.w = content.width();
data.startTime = content.startTime;
data.duration = content.duration;
data.description = QString::fromStdString(content.description);
data.channel = QString::fromStdString(content.channel);
data.properties = QJsonDocument::fromJson(QByteArray(content.attributes.c_str(), content.attributes.size())).object();
data.index = content.index;
data.x = content.x;
data.y = content.y;
data.h = content.height;
data.w = content.width;
return data;
}
@@ -140,6 +141,7 @@ ScriptTimelineDialog::ScriptTimelineDialog(const QString &menuGroup, QWidget *pa
, m_scriptsExerciseId(0)
, m_presentationTimer(new QTimer(this))
, m_ui(new Ui::ScriptDialog)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
m_ui->setupUi(this);
hide();
@@ -472,10 +474,10 @@ void ScriptTimelineDialog::load()
const Presentation presentation = m_dtc->presentation(m_scriptId);
m_scriptsExerciseId = m_scriptId;
m_scriptName = QString::fromStdString(presentation.name());
m_scriptOwner = QString::fromStdString(m_opmDtc->user(presentation.operatorId()).name());
m_lastModified = presentation.lastModified();
m_exerciseName = QString::fromStdString(m_exmDtc->exercise(m_exerciseSession->exerciseId()).name());
m_scriptName = QString::fromStdString(presentation.name);
m_scriptOwner = QString::fromStdString(m_opmDtc->user(presentation.operatorId).name);
m_lastModified = presentation.lastModified;
m_exerciseName = QString::fromStdString(m_exmDtc->exercise(m_exerciseSession->exerciseId()).name);
DEBUG_LOG(m_logger) << "### ###Name: " << m_exerciseName;
m_exerciseSession->baseLayout()->setCustomText(tr("Script: %1").arg(m_scriptName));
@@ -610,9 +612,9 @@ bool ScriptTimelineDialog::apply()
const int opId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
const int64_t lastModified = QDateTime::currentMSecsSinceEpoch();
const PresentationManagement::Presentation presentation = m_dtc->presentation(m_scriptId);
QString name = QString::fromStdString(presentation.name());
const QString description = QString::fromStdString(presentation.description());
if (presentation.operatorId() != opId)
QString name = QString::fromStdString(presentation.name);
const QString description = QString::fromStdString(presentation.description);
if (presentation.operatorId != opId)
{
const bool notSave = (LtsWidgets::Button::No == LtsWidgets::LtsMessageDialog::showMessage(
this, tr("Do you want to save a copy of the existing script from another user?<br><strong>Yes:</strong> Copy script and save the changes<br><strong>No:</strong> Cancel and give up changes"),
@@ -628,7 +630,7 @@ bool ScriptTimelineDialog::apply()
name = tr("Copy of ") + name;
}
if (presentation.id() < 1)
if (presentation.id < 1)
{
LtsWidgets::LtsMessageDialog::showMessage(this, tr("Unknown script!"));
return false;
@@ -636,7 +638,7 @@ bool ScriptTimelineDialog::apply()
const QVector<int> mainTopicItemIds = m_model->mainTopicItemIds();
PresentationModifyRequest req;
auto &content = req.content();
auto &content = req.content;
content.resize(mainTopicItemIds.size());
try
{
@@ -663,13 +665,13 @@ bool ScriptTimelineDialog::apply()
return false;
}
req.id(m_scriptId);
req.name(name.toStdString());
req.description(description.toStdString());
req.operatorId(opId);
req.lastModified(lastModified);
req.fileStatus(FileStatus::Valid);
req.content(content);
req.id = m_scriptId;
req.name = name.toStdString();
req.description = description.toStdString();
req.operatorId = opId;
req.lastModified = lastModified;
req.fileStatus = FileStatus::Valid;
req.content = content;
try
{
@@ -723,7 +725,7 @@ void ScriptTimelineDialog::getReplaySession() noexcept(false)
{
rp = m_coreDtc->replayPartition(replayId);
if (rp.id() == replayId)
if (rp.id == replayId)
{
found = true;
break;
@@ -1232,11 +1234,11 @@ bool ScriptTimelineDialog::enableFireEventFlash(bool enable)
void ScriptTimelineDialog::exportPresentationContent(const Core::FunctionReply &baseReply)
{
const GetPresentationContentReply &reply = static_cast<const GetPresentationContentReply &>(baseReply);
const dds::core::vector<PresentationManagement::PresentationContent> &contentList = reply.content();
const dds::core::vector<PresentationManagement::PresentationContent> &contentList = reply.content;
if (contentList.size() < 1)
{
ERROR_LOG(m_logger) << "No Presentation Content for Script Id " << reply.id();
ERROR_LOG(m_logger) << "No Presentation Content for Script Id " << reply.id;
LtsWidgets::LtsMessageDialog::showMessage(this, tr("No presentation content, nothing to export!"));
return;
}
@@ -1246,10 +1248,10 @@ void ScriptTimelineDialog::exportPresentationContent(const Core::FunctionReply &
for (const PresentationManagement::PresentationContent &content : contentList)
{
TopicEditorBase::TopicType topicType = TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType()));
TopicEditorBase::TopicType topicType = TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType));
if (topicType == TopicEditorBase::TopicType::Invalid)
{
ERROR_LOG(m_logger) << "Topic ignored at export - invalid topic type for presentation's content id " << content.id();
ERROR_LOG(m_logger) << "Topic ignored at export - invalid topic type for presentation's content id " << content.id;
continue;
}
#ifndef EXPORT_BDV_TOPIC_AS_JSON
@@ -1324,13 +1326,13 @@ void ScriptTimelineDialog::startEssentialsViewStage2(const Core::ReplayPartition
{
try
{
m_srmForeignDataIfc->replayPartitionRemoveRequest(replay.id(), LtsSessionData::LtsSessionData::getInstance()->getWorkstationId(),
m_srmForeignDataIfc->replayPartitionRemoveRequest(replay.id, LtsSessionData::LtsSessionData::getInstance()->getWorkstationId(),
LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
}
catch (...)
{
ERROR_LOG(m_logger) << "[timeout] Failed to remove failed-to-start replay. domainId: " << m_session->domainId()
<< " - replay id: " << replay.id()
<< " - replay id: " << replay.id
<< " - url " << m_session->tcpConnectionUrl().toString();
}
};
@@ -2744,7 +2746,7 @@ void ScriptTimelineDialog::onExport()
{
PresentationManagement::Presentation preSource = m_dtc->presentation(m_scriptId);
if (preSource.id() < 1)
if (preSource.id < 1)
return;
const QString exportPath(TakeHomePackageGenerator::ExportProcess::exportPath(m_exerciseSession->exerciseId()) + QString::number(m_scriptId));
@@ -2881,6 +2883,7 @@ ElementInfo elementInfoFromTopic(const TopicItem &ti)
CoolExporter::CoolExporter(ScriptTimelineDialog &dialog)
: m_this(dialog)
, m_loading(new LtsWidgets::LtsOverlayLoading)
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
{
connect(m_loading.get(), &LtsWidgets::LtsOverlayLoading::cancel,
this, [this]()
@@ -3923,7 +3926,7 @@ void ScriptTimelineDialog::onPresentationContent(const GetPresentationContentRep
{
m_ui->timeline->setMinimumZoomFactor(LtsTimeline::ZoomFactor::FifteenSeconds);
const auto &contentList = reply.content();
const auto &contentList = reply.content;
if (contentList.size() == 0)
{
@@ -3939,7 +3942,7 @@ void ScriptTimelineDialog::onPresentationContent(const GetPresentationContentRep
{
try
{
const int topicItemId = m_model->addItem(QString::fromStdString(content.channel()), TopicItem(content));
const int topicItemId = m_model->addItem(QString::fromStdString(content.channel), TopicItem(content));
const TopicItem &topicItem = m_model->topicItem(topicItemId);
m_lastTopicTime = std::max(m_lastTopicTime, topicItem.startTime() + topicItem.duration());
}
@@ -4001,7 +4004,7 @@ void ScriptTimelineDialog::startEssentialsView(int topicItemId, int topicType, b
{
rp = m_coreDtc->replayPartition(replayId);
if (rp.id() == replayId)
if (rp.id == replayId)
{
found = true;
break;
@@ -689,7 +689,7 @@ bool ScriptModel::import(const QVector<PresentationContent> &contents) noexcept(
qint64 duration = 0;
for (const PresentationContent &content : std::as_const(contents))
duration = std::max(duration, content.startTime() + content.duration());
duration = std::max(duration, static_cast<qint64>(content.startTime + content.duration));
duration *= 1000LL;
m_dialog->timeline()->view()->setDuration(m_dialog->timeline()->duration() + duration);
@@ -716,7 +716,7 @@ bool ScriptModel::import(const QVector<PresentationContent> &contents) noexcept(
}
for (const PresentationContent &content : std::as_const(contents))
addItem(QString::fromStdString(content.channel()), TopicItem(content), pasteTime);
addItem(QString::fromStdString(content.channel), TopicItem(content), pasteTime);
m_dialog->timeline()->setCurrentTime(pasteTime);
m_dialog->timeline()->setZoomFactor(Zoom::ceil(duration * 1.05));
@@ -743,7 +743,7 @@ PresentationContent ScriptModel::topicItemPresentationContent(int topicItemId) n
QJsonObject obj = _topicItem.properties();
obj[QStringLiteral("Filters")] = filterTopics;
const QByteArray attributes = QJsonDocument(obj).toJson(QJsonDocument::Compact);
content.attributes(attributes.data());
content.attributes = attributes.data();
}
}
return content;
@@ -7,8 +7,8 @@
#include <Common/TopicEditorBase/topic_editor_base.h>
#include <OperatorManagement/opm_data_plugin_interface.h>
#include <PresentationManagement/Script/Common/ScriptChooser/script_chooser.h>
#include <PresentationManagement/Common/pre_edit_dialog.h>
#include <Plugins/PresentationManagement/Gui/Script/Common/ScriptChooser/script_chooser.h>
#include <PresentationManagement/Gui/Common/pre_edit_dialog.h>
#include <LtsWidgets/lts_base_layout_widget.h>
#include <LtsSession/lts_session.h>
#include <LtsSession/lts_session_manager.h>
@@ -228,18 +228,18 @@ bool InterfaceImpl::importScript(int iSource)
}
PresentationManagement::Presentation presentation = m_preDtc->presentation(iSource);
if (presentation.id() < 1)
if (presentation.id < 1)
return false;
std::function<void(const Core::FunctionReply &baseReply)> importPresentationContent = [&](const Core::FunctionReply &baseReply)
{
const GetPresentationContentReply &reply = static_cast<const GetPresentationContentReply &>(baseReply);
const auto &contentList = reply.content();
const auto &contentList = reply.content;
if (contentList.empty())
{
ERROR_LOG(m_logger) << "No Presentation Content for Script Id " << reply.id();
ERROR_LOG(m_logger) << "No Presentation Content for Script Id " << reply.id;
return;
}
@@ -247,10 +247,10 @@ bool InterfaceImpl::importScript(int iSource)
contents.reserve(contentList.size());
for (const PresentationContent &content : contentList)
{
TopicEditorBase::TopicType topicType = TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType()));
TopicEditorBase::TopicType topicType = TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType));
if (topicType == TopicEditorBase::TopicType::Invalid)
{
ERROR_LOG(m_logger) << "Topic ignored - invalid topic type for presentation's content id = " << content.id();
ERROR_LOG(m_logger) << "Topic ignored - invalid topic type for presentation's content id = " << content.id;
continue;
}
contents.append(content);
@@ -259,7 +259,7 @@ bool InterfaceImpl::importScript(int iSource)
};
GetPresentationContentRequest req(iSource);
req.presentationId(iSource);
req.presentationId = iSource;
if (!m_requestHelper->startSingleRequest([req, this](){ return m_preFtc->getPresentationContentRequest(req, this); }, importPresentationContent))
{
LtsWidgets::LtsMessageDialog::showMessage(m_session->baseLayout(), tr("There is no content to import for this script."));
@@ -20,7 +20,7 @@
#include <LtsSession/lts_session.h>
#include <PluginInterfaces/gui_plugin_interface.h>
#include <PluginInterfaces/topic_replay_interface.h>
#include <PresentationManagement/Common/topic_assignment.h>
#include <PresentationManagement/Gui/Common/topic_assignment.h>
namespace PresentationManagement
@@ -36,22 +36,22 @@ TopicItem::TopicItem(const TopicEditorBase::TopicData &data)
}
TopicItem::TopicItem(const PresentationContent &content)
: LtsTimeline::Item(static_cast<qint64>(content.startTime()) * 1000, static_cast<qint64>(content.duration()) * 1000, TopicEditorBase::topicTypeColor(TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType()))), true)
, m_topicType(TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType())))
: LtsTimeline::Item(static_cast<qint64>(content.startTime) * 1000, static_cast<qint64>(content.duration) * 1000, TopicEditorBase::topicTypeColor(TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType))), true)
, m_topicType(TopicEditorBase::topicTypeFromString(QString::fromStdString(content.presentationTopicType)))
{
m_topicData.id = content.id();
m_topicData.id = content.id;
m_topicData.topicType = m_topicType;
m_topicData.startTime = m_startTime / 1000;
m_topicData.duration = m_duration / 1000;
m_topicData.state = true;
m_topicData.index = content.index();
m_topicData.description = QString::fromStdString(content.description());
m_topicData.channel = QString::fromStdString(content.channel());
m_topicData.properties = QJsonDocument::fromJson(QByteArray(content.attributes().c_str(), content.attributes().size())).object();
m_topicData.x = content.x();
m_topicData.y = content.y();
m_topicData.w = content.width();
m_topicData.h = content.height();
m_topicData.index = content.index;
m_topicData.description = QString::fromStdString(content.description);
m_topicData.channel = QString::fromStdString(content.channel);
m_topicData.properties = QJsonDocument::fromJson(QByteArray(content.attributes.c_str(), content.attributes.size())).object();
m_topicData.x = content.x;
m_topicData.y = content.y;
m_topicData.w = content.width;
m_topicData.h = content.height;
sortSequences();
}
@@ -150,19 +150,19 @@ QJsonObject TopicItem::toJson() const
PresentationContent TopicItem::toPresentationContent(int scriptId) const
{
PresentationManagement::PresentationContent content;
content.id(id());
content.presentationId(scriptId);
content.presentationTopicType(topicTypeString(m_topicType).toStdString());
content.channel(m_topicData.channel.toStdString());
content.startTime(m_startTime / 1000);
content.duration(m_duration / 1000);
content.id = id();
content.presentationId = scriptId;
content.presentationTopicType = topicTypeString(m_topicType).toStdString();
content.channel = m_topicData.channel.toStdString();
content.startTime = m_startTime / 1000;
content.duration = m_duration / 1000;
const QByteArray attributes = QJsonDocument(m_topicData.properties).toJson(QJsonDocument::Compact);
content.attributes(attributes.data());
content.description(m_topicData.description.toStdString());
content.x(m_topicData.x);
content.y(m_topicData.y);
content.height(m_topicData.h);
content.width(m_topicData.w);
content.attributes = attributes.data();
content.description = m_topicData.description.toStdString();
content.x = m_topicData.x;
content.y = m_topicData.y;
content.height = m_topicData.h;
content.width = m_topicData.w;
return content;
}
@@ -2,6 +2,7 @@
#include "pre_topic_recorder.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "pre_screen.h"
#include <LtsUtils/LtsUtilsCore/await.h>
@@ -34,7 +35,7 @@ TopicRecorder::TopicRecorder(const int topicId, const QString &topicName, const
, m_topicId(topicId)
, m_length((m_stopTime - (m_startTime - offset)) / 1000),
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {
const auto screenGlobalPos = screen->mapToGlobal({0,0});
const auto screenGlobalPos = screen->mapToGlobal(QPoint(0, 0));
const auto screenGeo = screen->geometry();
const double screenX = screenGlobalPos.x() + screenGeo.x();
@@ -2,6 +2,7 @@
#include "pre_topic_shotter.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include "pre_screen.h"
#include <QtCore/QFile>
#include <QtCore/QThread>
@@ -1,5 +1,7 @@
#include "pre_utils.h"
#include <ostream>
namespace PresentationManagement
{