Migrates ./Lts/Viewer successfully to Qt6

This commit is contained in:
torsten committed 2026-09-23 10:14:59 +02:00
1 parent cdb8c754e9
commit ed9fc51e7a
28 files changed
+250 -129

No files matched your search

@@ -18,8 +18,8 @@
// arcgis
#include <arcgis/TaskWatcher.h>
#include <arcgis/DictionarySymbolStyle.h>
#include <TaskWatcher.h>
#include <DictionarySymbolStyle.h>
// Qt
@@ -28,6 +28,7 @@
#include <QtCore/QUuid>
#include <QtCore/QByteArray>
#include <QtCore/QBuffer>
#include <utility>
#include <QMimeData>
#include <QtCore/QTimer>
@@ -441,7 +442,7 @@ void BaseSymbolModel::initModel(SymbolDictionary *symbolDictionary,
int itemCounter = 0;
QVector<DATA_T> vecData;
vecData.reserve(searchResultList.size());
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &searchResult : qAsConst(searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &searchResult : std::as_const(searchResultList))
{
GeometryType gt = GeometryType::Undefined;
auto it = baseSymbolCodeToSymbolPropertyTable.find(searchResult.key().left(8));
@@ -593,7 +594,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
cfc.sortItems = true;
cfc.data.reserve(d->m_usedOperator.size());
LtsWidgets::ComboboxFilterData cfd;
for (const QString &opName : qAsConst(d->m_usedOperator))
for (const QString &opName : std::as_const(d->m_usedOperator))
{
cfd.data = opName;
cfd.text = opName;
@@ -606,7 +607,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
LtsWidgets::ComboboxFilterContent cfc;
cfc.data.reserve(d->m_usedSymbolSet.size());
LtsWidgets::ComboboxFilterData cfd;
for (const auto &symSet : qAsConst(d->m_usedSymbolSet))
for (const auto &symSet : std::as_const(d->m_usedSymbolSet))
{
cfd.data = symSet;
cfd.text = symSet;
@@ -619,7 +620,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
LtsWidgets::ComboboxFilterContent cfc;
cfc.data.reserve(d->m_usedSymbolClass.size());
LtsWidgets::ComboboxFilterData cfd;
for (const auto &sc : qAsConst(d->m_usedSymbolClass))
for (const auto &sc : std::as_const(d->m_usedSymbolClass))
{
cfd.data = sc;
cfd.text = sc;
@@ -633,7 +634,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
cfc.sortItems = true;
cfc.data.reserve(d->m_usedXmlSymbolScale.size());
LtsWidgets::ComboboxFilterData cfd;
for (const auto &symScale : qAsConst(d->m_usedXmlSymbolScale))
for (const auto &symScale : std::as_const(d->m_usedXmlSymbolScale))
{
cfd.data = symScale;
cfd.text = QString::number(symScale);
@@ -646,7 +647,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
LtsWidgets::ComboboxFilterContent cfc;
cfc.data.reserve(d->m_usedGeometryTypes.size());
LtsWidgets::ComboboxFilterData cfd;
for (const AdvancedSymbology::GeometryType &gt : qAsConst(d->m_usedGeometryTypes))
for (const AdvancedSymbology::GeometryType &gt : std::as_const(d->m_usedGeometryTypes))
{
cfd.data = (int)gt;
cfd.text = geometryTypeToDisplayString(gt);
@@ -660,7 +661,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
cfc.sortItems = true;
cfc.data.reserve(d->m_usedCategory.size());
LtsWidgets::ComboboxFilterData cfd;
for (const auto &cat : qAsConst(d->m_usedCategory))
for (const auto &cat : std::as_const(d->m_usedCategory))
{
cfd.data = cat;
cfd.text = cat;
@@ -674,7 +675,7 @@ QVariant BaseSymbolModel::headerData(int section, Qt::Orientation orientation, i
cfc.sortItems = true;
cfc.data.reserve(d->m_usedGctStrings.size());
LtsWidgets::ComboboxFilterData cfd;
for (const auto &gctStr : qAsConst(d->m_usedGctStrings))
for (const auto &gctStr : std::as_const(d->m_usedGctStrings))
{
cfd.data = gctStr;
cfd.text = gctStr;
@@ -922,7 +923,7 @@ void BaseSymbolModel::onUpdateUsedItemsForComboBox()
d->m_usedCategory.clear();
d->m_usedGctStrings.clear();
for (const QSharedPointer<BaseSymbolItem> &item : qAsConst(m_vecData))
for (const QSharedPointer<BaseSymbolItem> &item : std::as_const(m_vecData))
{
if (!item)
continue;
@@ -944,7 +945,7 @@ SymbolProperties BaseSymbolModel::symbolProperties(const QString &baseSymbolCode
// bisher aus m_baseSymbolCodeToSymbolPropertyTable beantwortet:
SymbolProperties symbolProperties;
for (const auto &item : qAsConst(m_vecData))
for (const auto &item : std::as_const(m_vecData))
{
if (item->baseSymbolCode() != baseSymbolCode)
continue;
@@ -19,13 +19,13 @@
// ESRI
#include <arcgis/Symbol.h>
#include <arcgis/Loadable.h>
#include <arcgis/DictionarySymbolStyle.h>
#include <Symbol.h>
#include <Loadable.h>
#include <DictionarySymbolStyle.h>
#include <arcgis/SymbolStyleSearchParameters.h>
#include <arcgis/SymbolStyleSearchResultListModel.h>
#include <arcgis/SymbolStyleSearchResult.h>
#include <SymbolStyleSearchParameters.h>
#include <SymbolStyleSearchResultListModel.h>
#include <SymbolStyleSearchResult.h>
// XML:
#include <SymbologyXML/symbol.h>
@@ -14,15 +14,16 @@
// ESRI
#include <arcgis/TaskWatcher.h>
#include <arcgis/Symbol.h>
#include <arcgis/SymbolStyleSearchParameters.h>
#include <arcgis/SymbolStyleSearchResultListModel.h>
#include <arcgis/SymbolStyleSearchResult.h>
#include <TaskWatcher.h>
#include <Symbol.h>
#include <SymbolStyleSearchParameters.h>
#include <SymbolStyleSearchResultListModel.h>
#include <SymbolStyleSearchResult.h>
// Qt
#include <QtConcurrent>
#include <utility>
#include <QtCore/QFuture>
#define CREATE_ESRI_SYMBOL_ON_DEMAND // save time on startup
@@ -291,7 +292,7 @@ void EsriDictionaryProcessor::syncTableWithinMainThread()
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
// for ALL searchResuls (for valid baseSymbolCodes, for modifierTable...)
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
const QString &originalKey = resultItem.key();
@@ -19,7 +19,7 @@
// Esri
#include <arcgis/DictionarySymbolStyle.h>
#include <DictionarySymbolStyle.h>
@@ -16,6 +16,7 @@
// Qt
#include <QtConcurrent>
#include <QtCore/QFuture>
#include <utility>
namespace AdvancedSymbology
@@ -130,7 +131,7 @@ bool EsriDictionaryProcessorApp6::processBaseSymbolCodeToPropertyTable()
int resultItemCounter = 0;
int gctStringEmptyCounter = 0;
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
// canceled?
@@ -229,11 +230,11 @@ bool EsriDictionaryProcessorApp6::processBaseSymbolCodeToPropertyTable()
/*
const QString cat = resultItem.category();
const QVector<QStringRef> &slCategory = cat.splitRef(QLatin1Char(':'));
const QVector<QStringView> &slCategory = cat.split(QLatin1Char(':'));
if (!slCategory.isEmpty())
{
const QStringRef &geometryStr = slCategory.last().trimmed();
const QStringView 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;
@@ -35,10 +35,12 @@
// Qt
#include <QtCore/QThread>
#include <utility>
#include <QStringView>
#include <arcgis/arcgisversion.h> // This file is created by RME, not ESRI
#include <arcgisversion.h> // This file is created by RME, not ESRI
namespace AdvancedSymbology
@@ -243,7 +245,7 @@ bool EsriDictionaryProcessorApp6D::processBaseSymbolCodeToPropertyTable()
int resultItemCounter = 0;
int gctStringEmptyCounter = 0;
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
// canceled?
@@ -316,10 +318,10 @@ bool EsriDictionaryProcessorApp6D::processBaseSymbolCodeToPropertyTable()
symProps.setSidc(SidcCodec::encodeBaseSymbolCode(m_baseSymbolCodeToSymbolPropertyTable.symbologyType(), key8));
// retrieve GeometryType
const QString cat = resultItem.category();
const QVector<QStringRef> &slCategory = cat.splitRef(QLatin1Char(':'));
const QVector<QStringView> &slCategory = cat.split(QLatin1Char(':'));
if (!slCategory.isEmpty())
{
const QStringRef &geometryStr = slCategory.last().trimmed();
const QStringView 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;
@@ -385,7 +387,7 @@ bool EsriDictionaryProcessorApp6D::processModifierTable()
}
int counter = 0;
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
++counter;
@@ -415,8 +417,8 @@ bool EsriDictionaryProcessorApp6D::processModifierTable()
if (isDigit)
{
const QString &resultItemName = resultItem.name(); // store result item name locally to guaranty following splitRef
const QVector<QStringRef> &sl = resultItemName.splitRef(QLatin1String(" : ")); // otherwise ("resultItem.name().splitRef(...)") unpredictable results are possible
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
// log multiple keys:
if (m_modifierTable.contains(originalKey))
@@ -428,7 +430,7 @@ bool EsriDictionaryProcessorApp6D::processModifierTable()
modData.m_modifierKey = originalKey;
QStringRef symbolSetStringRef = originalKey.midRef(0, 2);
QStringView symbolSetStringRef = originalKey.mid(0, 2);
SidcDefinitions::SymbolSet symbolSetEnum = static_cast<SidcDefinitions::SymbolSet>(symbolSetStringRef.toUInt());
if (!SidcDefinitions::symbolSets().contains(symbolSetEnum))
@@ -15,6 +15,8 @@
// Qt
#include <QtCore/QThread>
#include <utility>
#include <QStringView>
namespace AdvancedSymbology
@@ -243,7 +245,7 @@ bool EsriDictionaryProcessorMil2525D::processBaseSymbolCodeToPropertyTable()
int resultItemCounter = 0;
int gctStringEmptyCounter = 0;
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
// canceled?
@@ -315,10 +317,10 @@ bool EsriDictionaryProcessorMil2525D::processBaseSymbolCodeToPropertyTable()
symProps.setSidc(SidcCodec::encodeBaseSymbolCode(m_baseSymbolCodeToSymbolPropertyTable.symbologyType(), key8));
// retrieve GeometryType
const QString cat = resultItem.category();
const QVector<QStringRef> &slCategory = cat.splitRef(QLatin1Char(':'));
const QVector<QStringView> &slCategory = cat.split(QLatin1Char(':'));
if (!slCategory.isEmpty())
{
const QStringRef &geometryStr = slCategory.last().trimmed();
const QStringView 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;
@@ -383,7 +385,7 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
int counter = 0;
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : qAsConst(m_searchResultList))
for (const Esri::ArcGISRuntime::SymbolStyleSearchResult &resultItem : std::as_const(m_searchResultList))
{
++counter;
@@ -413,8 +415,8 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
if (isDigit)
{
const QString &resultItemName = resultItem.name(); // store result item name locally to guaranty following splitRef
const QVector<QStringRef> &sl = resultItemName.splitRef(QLatin1String(" : ")); // otherwise ("resultItem.name().splitRef(...)") unpredictable results are possible
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
// log multiple keys:
if (m_modifierTable.contains(originalKey))
@@ -424,7 +426,7 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
modData.m_modifierKey = originalKey;
SidcDefinitions::SymbolSet symbolSetEnum = static_cast<SidcDefinitions::SymbolSet>(originalKey.midRef(0, 2).toUInt());
SidcDefinitions::SymbolSet symbolSetEnum = static_cast<SidcDefinitions::SymbolSet>(originalKey.mid(0, 2).toUInt());
if (!SidcDefinitions::symbolSets().contains(symbolSetEnum))
{
@@ -434,8 +436,8 @@ bool EsriDictionaryProcessorMil2525D::processModifierTable()
}
modData.m_symbolSet = symbolSetEnum;
modData.m_modifierSector = originalKey.midRef(4, 1).toUInt();
modData.m_modifierValue = originalKey.midRef(2, 2).toUInt();
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();
m_modifierTable[originalKey] = modData;
@@ -27,11 +27,11 @@
#include <SymbologyXML/xml_symbol_codec.h>
// ESRI
#include <arcgis/TaskWatcher.h>
#include <arcgis/Symbol.h>
#include <arcgis/SymbolStyleSearchParameters.h>
#include <arcgis/SymbolStyleSearchResultListModel.h>
#include <arcgis/SymbolStyleSearchResult.h>
#include <TaskWatcher.h>
#include <Symbol.h>
#include <SymbolStyleSearchParameters.h>
#include <SymbolStyleSearchResultListModel.h>
#include <SymbolStyleSearchResult.h>
# include <arcgis/arcgisversion.h> // This file is created by RME, not ESRI
@@ -48,6 +48,8 @@
#include <QtWidgets/QTreeView>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QDialog>
#include <QStringView>
#include <utility>
#include <QtCore/QRegularExpression>
#include <QtCore/QDir>
#include <QtCore/QThread>
@@ -785,7 +787,7 @@ int SymbolDictionaryImpl::addEtsSymbols(const QString &path)
// iterate over sorted files:
int fileId_substitute = 0;
for (const auto &filePath : qAsConst(slFilePaths))
for (const auto &filePath : std::as_const(slFilePaths))
{
++fileId_substitute;
// DEBUG_LOG(m_logger) << LOGFUNCTION << " found file= '" << filePath << "'";
@@ -819,10 +821,10 @@ int SymbolDictionaryImpl::addEtsSymbols(const QString &path)
// rootDir.absolutePath(): ':/advancedSymbology/CivilSymbols'
// filepath : ':/advancedSymbology/CivilSymbols/Sonstige/Bundeswehr_Stelle.gif'
// remove path from filePath:
QStringRef filePathReduced = filePath.midRef(rootDir.absolutePath().size() + 1);
QStringView filePathReduced = filePath.mid(rootDir.absolutePath().size() + 1);
// filepath 'Sonstige/Bundeswehr_Stelle.gif'
QVector<QStringRef> parts = filePathReduced.split(QLatin1Char('/'));
QVector<QStringView> parts = filePathReduced.split(QLatin1Char('/'));
// remove filename (to get dirname's as tags:
parts.removeLast();
@@ -840,7 +842,7 @@ int SymbolDictionaryImpl::addEtsSymbols(const QString &path)
QStringList tags;
tags.reserve(parts.size() + 2);
tags.append(ETS_SYMBOL_KEYWORD); // 'ETS'
for (const auto &item : qAsConst(parts))
for (const auto &item : std::as_const(parts))
tags.append(item.toString());
tags.append(humanReadableName);
@@ -1441,7 +1443,7 @@ QSharedPointer<SymbolResult> SymbolDictionaryImpl::fetchSymbol(const SymbolDataT
}
// linear search - maybe optimize. But how many different icons are really rendered in parallel?
for (const QWeakPointer<SymbolResult> &res : qAsConst(m_findSymbol2symbolResult))
for (const QWeakPointer<SymbolResult> &res : std::as_const(m_findSymbol2symbolResult))
{
auto sp = res.toStrongRef();
if (!sp)
@@ -1988,7 +1990,7 @@ QImage renderXML_Symbol(const QSharedPointer<SymbologyXML::PixmapSymbolCache> &x
}
additionalSymbolData.m_vbg.color = injuryColor;
for (const AdditionalSymbolType additionalSymbolType : qAsConst(symbolDataToRender.additionalSymbols))
for (const AdditionalSymbolType additionalSymbolType : std::as_const(symbolDataToRender.additionalSymbols))
{
switch (additionalSymbolType)
{
@@ -2089,7 +2091,7 @@ QImage renderExtensions(QImage &coreImage,
// coreImage.save(QLatin1String("/tmp/dummy.png"));
for (const QColor &oldColor : qAsConst(oldColorVec))
for (const QColor &oldColor : std::as_const(oldColorVec))
{
if (oldColor.isValid())
{
@@ -2128,7 +2130,7 @@ QImage renderExtensions(QImage &coreImage,
#endif // USE_ARCADE_SYMBOLOGY
// replace honoring the hotSpot by simple scaling :
int hqFdTf = QStringRef(&sidc, 7, 1).toInt();
int hqFdTf = QStringView(sidc).slice(7, 1).toInt();
// int amplifierDescriptor = QStringRef(&sidc, 8, 2).toInt();
if (((hqFdTf > 0) && ((hqFdTf < 8)))) // HeadQuarter/FeintDummy/TaskFore have more height then width
newSize = fullImage.size();
@@ -13,7 +13,7 @@
#include "advanced_symbology_logging.h"
// Esri
#include <arcgis/DictionarySymbolStyle.h>
#include <DictionarySymbolStyle.h>
class QStandardItemModel;