Qt6 Migration: Complete migration with DDS/RTI support and build validation

Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-09-15 18:20:26 +00:00
1 parent f23384bb68
commit 7173785915
18662 files changed
+4115092 -5435

No files matched your search

@@ -0,0 +1,23 @@
#
# $Id$
# $HeadURL$
# $Author$
#
SET(SRCS_IMPORT_BUILDINGS
ism_import_buildings.cpp
ism_import_buildings.h
)
NGL_ADD_EXECUTABLE(AAR SV WS ismImportBuildings ${SRCS_IMPORT_BUILDINGS})
NGL_TARGET_LINK_LIBRARIES(ismImportBuildings
Qt5::Core
RTI::nddscpp2
svcIsmClient
LtsCommandLineParser
ddsconnector
nglcoreapplication
LtsUtilsCoreHeaderOnly
Qt5::WebSockets
)
NGL_INSTALL_TARGET(ismImportBuildings)
@@ -0,0 +1,99 @@
/**
* @RDE_HEADER@
* ISM Test Import XML
* $Id$
* $HeadURL$
* $Author$
* Created by Iuliana Ojog, SLSE, 2016-11-28
*/
#pragma once
#include <InfrastructureManagement/ism_ftc.h>
#include <InfrastructureManagement/ism_dtc.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <InfrastructureManagement/logger.h>
#include <QVector>
//----------------------------------------------------------------------------------------------
namespace InfrastructureManagement
{
class IsmImportBuildings : public QObject
, protected InfrastructureManagement::Interface::Ftc::MainStructureElementModifyReplyHandler
, protected InfrastructureManagement::Interface::Ftc::MainStructureElementRemoveReplyHandler
, protected InfrastructureManagement::Interface::Ftc::MountingPointAssetRemoveReplyHandler
, protected InfrastructureManagement::Interface::Ftc::MountingPointAssetModifyReplyHandler
, protected InfrastructureManagement::Interface::Ftc::MountingPointPlanModifyReplyHandler
, protected InfrastructureManagement::Interface::Ftc::StructureElementModifyReplyHandler
{
Q_OBJECT
public:
struct ImportData
{
QString xmlFileName;
QString vulFileName;
QString egcuToRoomFileName;
QString soundAreaFileName;
Core::GeoPosition geoPos;
double angleDegree = 0;
int exerciseId = 0;
int externalWlsId = 0;
int buildingId = -1;
int bauabschnitt = -1;
};
explicit IsmImportBuildings(QObject *parent = nullptr);
bool init(int domainId, const QUrl &tcpDiscoveryUrl);
void import(const ImportData &importData);
void import(const QVector<ImportData> &importData);
void remove(const QVector<int> &ids);
Q_SIGNALS:
void importDone();
void removeDone();
protected Q_SLOTS:
void doImport();
void importNext();
protected:
void onMainStructureElementModifyReply(const Core::FunctionReplyObject &replyObject) override final;
void onMainStructureElementRemoveReply(const Core::FunctionReplyObject &replyObject) override final;
void onMountingPointPlanModifyReply(const Core::FunctionReplyObject &reply) override final;
void onMountingPointAssetModifyReply(const Core::FunctionReplyObject &reply) override final;
void onMountingPointAssetRemoveReply(const Core::FunctionReplyObject &reply) override final;
void onStructureElementModifyReply(const Core::FunctionReplyObject &reply) override final;
bool handleReply(const Core::FunctionReplyObject &replyObject);
private:
void removeNext();
void remove(int buildingId);
void doRemove(int buildingId);
MainStructureElement mainStructureElementByName(const std::string &name) const;
QHash</* scheduleId */ int, std::vector<MountingPointPlan> > MountingPointPlanByScheduleOfStructureElements(const QVector<qint32> &structureElementIds) const;
QVector<MountingPointAsset> mountingsOfStructureElements(const QVector<qint32> &structureElementIds) const;
QVector<std::string> pathWithNames(const StructureElement &structureElement, const MainStructureElement &mainStructureElement) const;
std::string structureElementNameById(qint32 id, const std::vector<StructureElement> &structureElements) const;
StructureElement structureElementById(qint32 id, const MainStructureElement &mainStructureElement) const;
void createNewMainStructureElement(const MainStructureElementModifyRequest &request);
void restoreData(const MainStructureElement &oldMainStructureElement,
const QMap<qint32, QVector<std::string>>&oldNamePaths,
const QVector<MountingPointAsset>& mountings,
const QHash<int, std::vector<MountingPointPlan> > &mountingPointPlansBySchedule);
void unmountAssetsOfBuliding(qint32 buildingId);
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<InfrastructureManagement::Interface::Dtc> m_dtc;
std::shared_ptr<InfrastructureManagement::Interface::Ftc> m_ftc;
QVector<int> m_idsToBeRemoved;
QVector<ImportData> m_importData;
ImportData m_currentData;
int m_curImportIdx;
bool m_hasOneRemoved = true;
bool m_isInRestoringMode = false;
LOGGER_T m_logger;
};
} // namespace InfrastructureManagement