Merge feature/qt6-migration-basis-modules-merge-viewer-validation into feature/migrate-lts-projects-and-application

Cherry-picks 5501d1e50 (stub-header updates, superseded by 4223ca2ff relocation); resolves 1 content + 24 modify/delete conflicts; validates BUILD_RTI=ON BUILD_GRANTLEE=ON incl. Tools Groups 6-11.
This commit is contained in:
berrux-dev committed 2026-09-28 01:05:39 +02:00
commit 593c221d23
1295 files changed
+22136 -20217

No files matched your search

@@ -9,7 +9,8 @@
ADD_SUBDIRECTORY(Common)
ADD_SUBDIRECTORY(SymbologyXML)
ADD_SUBDIRECTORY(Symbology)
# ADD_SUBDIRECTORY(ElevationMap)
# ElevationMapManager compatibility stub (src/ + include/ scaffolding) needed by LtsElevation
ADD_SUBDIRECTORY(ElevationMap)
# Remaining subdirectories not yet migrated:
# ADD_SUBDIRECTORY(SymbologyGui)
@@ -0,0 +1,37 @@
#
# $Id$
# $HeadURL$
# $Author$
#
# The GDAL-based ElevationMap module is not yet migrated to Qt6 (see the
# commented-out entries in ../CMakeLists.txt). LtsElevation still needs an
# ElevationMapManager, so build the compatibility stub that lives in the
# src/ + include/ scaffolding (same API as the Qt5 class, no GDAL).
NGL_ADD_LIBRARY(WS AAR HLA SV situationMapElevationMap SHARED
${CMAKE_SOURCE_DIR}/src/Viewer/SituationMap/ElevationMap/elevation_map_manager.cpp
# The header lives in include/Viewer/SituationMap/ElevationMap, apart from
# the cpp. AUTOMOC only mocs headers that are target sources (or sit next
# to one); MOC_INCLUDES merely feeds moc's own -I flags, not header
# discovery. Listed explicitly, otherwise the vtable/staticMetaObject are
# undefined and the link of libsituationMapElevationMap.so fails.
${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h
)
# The stub's ElevationMapManager is a Q_OBJECT class; without AUTOMOC the
# moc symbols (staticMetaObject/vtable) are missing and the link of
# libsituationMapElevationMap.so fails, cascading to every target that
# links it (same pattern as LtsSessionDataDds).
set_target_properties(situationMapElevationMap PROPERTIES AUTOMOC ON)
NGL_TARGET_INCLUDE_DIRECTORIES(situationMapElevationMap
PUBLIC
# The stub cpp does #include "elevation_map_manager.h" - it lives in
# include/Viewer/SituationMap/ElevationMap/, not next to the source.
${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap/ElevationMap
${CMAKE_SOURCE_DIR}/include
)
NGL_TARGET_LINK_LIBRARIES(situationMapElevationMap
PUBLIC
Qt6::Core
)
@@ -27,19 +27,19 @@ AdvancedSymbology::Role roleToRole(const PARTICIPANT_ROLE_TYPE role)
{
switch (role.underlying())
{
case ParticipantManagement::Role_def::Unknown:
case ParticipantManagement::Role::Unknown:
return AdvancedSymbology::Role::Unknown;
case ParticipantManagement::Role_def::Friend:
case ParticipantManagement::Role::Friend:
return AdvancedSymbology::Role::Friend;
case ParticipantManagement::Role_def::Neutral:
case ParticipantManagement::Role::Neutral:
return AdvancedSymbology::Role::Neutral;
case ParticipantManagement::Role_def::Enemy:
case ParticipantManagement::Role::Enemy:
return AdvancedSymbology::Role::HostileFaker;
case ParticipantManagement::Role_def::Pending:
case ParticipantManagement::Role::Pending:
return AdvancedSymbology::Role::Pending;
case ParticipantManagement::Role_def::AssumedFriend:
case ParticipantManagement::Role::AssumedFriend:
return AdvancedSymbology::Role::AssumedFriend;
case ParticipantManagement::Role_def::Suspect:
case ParticipantManagement::Role::Suspect:
return AdvancedSymbology::Role::SuspectJoker;
} // switch
@@ -97,8 +97,8 @@ int SearchParameters::numberOfParameter() const
SymbolDictionary::SymbolDictionary(QObject *parent)
: QObject(parent)
, m_logger(getLogger("SymbolDictionary"))
{
LOGGER_T m_logger = getLogger("SymbolDictionary");
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
initResource();
@@ -159,7 +159,7 @@ QString BaseSymbolItem::symbolSet()
{
if (m_symbolSet.isEmpty())
{
SidcDefinitions::SymbolSet symbolSet = SidcDefinitions::castToSymbolSet(m_symbolProperties.originalKey().leftRef(2).toUInt());
SidcDefinitions::SymbolSet symbolSet = SidcDefinitions::castToSymbolSet(m_symbolProperties.originalKey().left(2).toUInt() // Qt6: leftRef removed);
m_symbolSet = QString(QStringLiteral("%1 - ")).arg(static_cast<int>(symbolSet)) + AdvancedSymbology::SidcDefinitions::toString(symbolSet);
}
return m_symbolSet;
@@ -167,7 +167,7 @@ QString BaseSymbolItem::symbolSet()
int BaseSymbolItem::symbolSetAsInt()
{
return static_cast<int>(SidcDefinitions::castToSymbolSet(m_symbolProperties.originalKey().leftRef(2).toUInt()));
return static_cast<int>(SidcDefinitions::castToSymbolSet(m_symbolProperties.originalKey().left(2).toUInt() // Qt6: leftRef removed));
}
@@ -17,6 +17,9 @@
#include <LtsWidgets/lts_abstract_table_model.h>
#include <LtsWidgets/lts_column_filter_proxy_model.h>
// Qt
#include <QUuid>
// ESRI
#include <Symbol.h>
@@ -16,10 +16,12 @@
// Qt
#include <QtGui/QImage>
#include <QUuid> // QUuid used in slot signatures / map keys (Qt6: no transitive include)
// Esri
#include <DictionarySymbolStyle.h>
#include <SymbolStyleSearchResult.h> // Esri::ArcGISRuntime::SymbolStyleSearchResult used below (no transitive include)
@@ -318,10 +318,10 @@ bool EsriDictionaryProcessorApp6D::processBaseSymbolCodeToPropertyTable()
symProps.setSidc(SidcCodec::encodeBaseSymbolCode(m_baseSymbolCodeToSymbolPropertyTable.symbologyType(), key8));
// retrieve GeometryType
const QString cat = resultItem.category();
const QVector<QStringView> &slCategory = cat.split(QLatin1Char(':'));
const QStringList &slCategory = cat.split(QLatin1Char(':')); // Qt6: split() returns QStringList
if (!slCategory.isEmpty())
{
const QStringView geometryStr = slCategory.last().trimmed();
const QString geometryStr = slCategory.last().trimmed();
bool isPoint = geometryStr.compare(QLatin1String("Point"), Qt::CaseInsensitive) == 0;
bool isMainIcon = geometryStr.compare(QLatin1String("Main Icon"), Qt::CaseInsensitive) == 0;
bool isLine = geometryStr.compare(QLatin1String("Line"), Qt::CaseInsensitive) == 0;
@@ -338,7 +338,7 @@ bool EsriDictionaryProcessorApp6D::processBaseSymbolCodeToPropertyTable()
DEBUG_LOG(m_logger) << LOGFUNCTION << " XXXXXXXXX GeometryType:"
<< " key8='" << key8 << "'"
<< " originalKey='" << originalKey << "'"
<< "' slLast='" << slCategory.last().toString() << "'"
<< "' slLast='" << slCategory.last() << "'" // Qt6: QString has no toString()
<< " geoType= " << symProps.geometryType();
// check for gct_-String:
@@ -418,7 +418,7 @@ bool EsriDictionaryProcessorApp6D::processModifierTable()
if (isDigit)
{
const QString &resultItemName = resultItem.name(); // store result item name locally to guaranty following split
const QVector<QStringView> &sl = resultItemName.split(QLatin1String(" : ")); // otherwise ("resultItem.name().split(...)") unpredictable results are possible
const QStringList &sl = resultItemName.split(QLatin1String(" : ")); // otherwise ("resultItem.name().split(...)") unpredictable results are possible; Qt6: split() returns QStringList
// log multiple keys:
if (m_modifierTable.contains(originalKey))
@@ -441,9 +441,9 @@ bool EsriDictionaryProcessorApp6D::processModifierTable()
}
modData.m_symbolSet = symbolSetEnum;
modData.m_modifierSector = originalKey.midRef(4, 1).toUInt();
modData.m_modifierValue = originalKey.midRef(2, 2).toUInt();
modData.m_modifierName = (sl.size() == 2) ? sl.last().toString() : resultItem.name();
modData.m_modifierSector = originalKey.mid(4, 1).toUInt(); // Qt6: midRef removed
modData.m_modifierValue = originalKey.mid(2, 2).toUInt();
modData.m_modifierName = (sl.size() == 2) ? sl.last() : resultItem.name(); // Qt6: QString has no toString()
m_modifierTable[originalKey] = modData;
@@ -113,7 +113,7 @@ bool EsriDictionaryProcessorMil2525D::searchResultIsValid(const QHash<QString, i
//
// isCharlie (key like '46120203_C') [V100.0, V100.1]
//
if ((keySize == 10) && (originalKey.rightRef(2).compare(QLatin1String("_C")) == 0))
if ((keySize == 10) && (originalKey.right(2).compare(QLatin1String("_C")) == 0)) // Qt6: rightRef removed
{
DEBUG_LOG(m_logger) << LOGFUNCTION
<< " isCharlie,"
@@ -317,10 +317,10 @@ bool EsriDictionaryProcessorMil2525D::processBaseSymbolCodeToPropertyTable()
symProps.setSidc(SidcCodec::encodeBaseSymbolCode(m_baseSymbolCodeToSymbolPropertyTable.symbologyType(), key8));
// retrieve GeometryType
const QString cat = resultItem.category();
const QVector<QStringView> &slCategory = cat.split(QLatin1Char(':'));
const QStringList &slCategory = cat.split(QLatin1Char(':')); // Qt6: split() returns QStringList
if (!slCategory.isEmpty())
{
const QStringView geometryStr = slCategory.last().trimmed();
const QString geometryStr = slCategory.last().trimmed();
bool isPoint = geometryStr.compare(QLatin1String("Point"), Qt::CaseInsensitive) == 0;
bool isMainIcon = geometryStr.compare(QLatin1String("Main Icon"), Qt::CaseInsensitive) == 0;
bool isLine = geometryStr.compare(QLatin1String("Line"), Qt::CaseInsensitive) == 0;
@@ -337,7 +337,7 @@ bool EsriDictionaryProcessorMil2525D::processBaseSymbolCodeToPropertyTable()
DEBUG_LOG(m_logger) << LOGFUNCTION << " XXXXXXXXX GeometryType:"
<< " key8='" << key8 << "'"
<< " originalKey='" << originalKey << "'"
<< "' slLast='" << slCategory.last().toString() << "'"
<< "' slLast='" << slCategory.last() << "'" // Qt6: QString has no toString()
<< " geoType= " << symProps.geometryType();
// check for gct_-String:
@@ -416,7 +416,7 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
if (isDigit)
{
const QString &resultItemName = resultItem.name(); // store result item name locally to guaranty following split
const QVector<QStringView> &sl = resultItemName.split(QLatin1String(" : ")); // otherwise ("resultItem.name().split(...)") unpredictable results are possible
const QStringList &sl = resultItemName.split(QLatin1String(" : ")); // otherwise ("resultItem.name().split(...)") unpredictable results are possible; Qt6: split() returns QStringList
// log multiple keys:
if (m_modifierTable.contains(originalKey))
@@ -438,7 +438,7 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
modData.m_symbolSet = symbolSetEnum;
modData.m_modifierSector = originalKey.mid(4, 1).toUInt();
modData.m_modifierValue = originalKey.mid(2, 2).toUInt();
modData.m_modifierName = (sl.size() == 2) ? sl.last().toString() : resultItem.name();
modData.m_modifierName = (sl.size() == 2) ? sl.last() : resultItem.name(); // Qt6: QString has no toString()
m_modifierTable[originalKey] = modData;
@@ -824,7 +824,7 @@ int SymbolDictionaryImpl::addEtsSymbols(const QString &path)
QStringView filePathReduced = filePath.mid(rootDir.absolutePath().size() + 1);
// filepath 'Sonstige/Bundeswehr_Stelle.gif'
QVector<QStringView> parts = filePathReduced.split(QLatin1Char('/'));
QList<QStringView> parts = filePathReduced.split(QLatin1Char('/')); // Qt6: QStringView::split returns QList<QStringView>
// remove filename (to get dirname's as tags:
parts.removeLast();
@@ -2211,7 +2211,7 @@ QList<ModifierData> SymbolDictionaryImpl::symbolModifierList(const QString &base
return QList<ModifierData>();
}
SidcDefinitions::SymbolSet symbolSetBaseCode = SidcDefinitions::castToSymbolSet(baseSymbolCode.midRef(0, 2).toUInt());
SidcDefinitions::SymbolSet symbolSetBaseCode = SidcDefinitions::castToSymbolSet(baseSymbolCode.mid(0, 2).toUInt()); // Qt6: midRef removed
return m_esriDictionaryProcessor->symbolModifierList(symbolSetBaseCode, modifierSector).toList();
}
@@ -12,6 +12,9 @@
#include "esri_dictionary_processor.h"
#include "advanced_symbology_logging.h"
// Qt
#include <QUuid> // QUuid used in slot signatures / map keys (Qt6: no transitive include)
// Esri
#include <DictionarySymbolStyle.h>