Copies intermediate migration results to repo
This commit is contained in:
32 files changed
+1158
-376
No files matched your search
+154
-97
@@ -27,18 +27,17 @@
|
||||
#include <SymbologyXML/xml_symbol_codec.h>
|
||||
|
||||
// ESRI
|
||||
#include <TaskWatcher.h>
|
||||
#include <Job.h>
|
||||
#include <Symbol.h>
|
||||
#include <SymbolStyleSearchParameters.h>
|
||||
#include <SymbolStyleSearchResultListModel.h>
|
||||
#include <SymbolStyleSearchResult.h>
|
||||
#include <Error.h>
|
||||
#include <MapTypes.h>
|
||||
|
||||
|
||||
# include <arcgis/arcgisversion.h> // This file is created by RME, not ESRI
|
||||
|
||||
#if ACRGIS_VERSION >= 0x640100 // 100.1.0 / Update 1
|
||||
# define SYM_PROTECTION_AREAS_BECOMES_LINE
|
||||
#endif
|
||||
// ArcGIS Maps SDK for Qt 200.x (Qt6) - version is always >= 100.1.0
|
||||
#define SYM_PROTECTION_AREAS_BECOMES_LINE
|
||||
|
||||
|
||||
// Qt
|
||||
@@ -341,7 +340,7 @@ bool SymbolDictionaryImpl::init(SymbologyType symbologyType, const QString &symb
|
||||
delete m_esri_dictionary;
|
||||
clearEtsSymbols();
|
||||
|
||||
m_createSwatch2findSymbolTaskId.clear();
|
||||
m_createSwatch2findSymbolTask.clear();
|
||||
m_findSymbol2propertyResult.clear();
|
||||
m_findSymbol2symbolResult.clear();
|
||||
|
||||
@@ -393,12 +392,13 @@ bool SymbolDictionaryImpl::init(SymbologyType symbologyType, const QString &symb
|
||||
m_esri_dictionary = Esri::ArcGISRuntime::DictionarySymbolStyle::createFromFile(m_symbologyResourcePath);
|
||||
|
||||
#else
|
||||
// Qt6/ArcGIS SDK v300: DictionarySymbolStyle constructor requires PortalItem or use createFromFile()
|
||||
// QString symbologyResourcePath("/usr/share/arcgis/resources/symbols//mil2525d/mil2525d.stylx");
|
||||
if (symbologyResourcePath.isEmpty())
|
||||
{
|
||||
INFO_LOG(m_logger) << LOGFUNCTION << " create EsriDict:"
|
||||
<< " m_specificationType='" << m_specificationType << "'";
|
||||
m_esri_dictionary = new Esri::ArcGISRuntime::DictionarySymbolStyle(m_specificationType);
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " symbologyResourcePath is empty - cannot create DictionarySymbolStyle without path";
|
||||
Q_ASSERT(false);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -413,7 +413,8 @@ bool SymbolDictionaryImpl::init(SymbologyType symbologyType, const QString &symb
|
||||
NOTICE_LOG(m_logger) << LOGFUNCTION << " create EsriDict:"
|
||||
<< " m_specificationType='" << m_specificationType << "'"
|
||||
<< " m_symbologyResourcePath='" << m_symbologyResourcePath << "'";
|
||||
m_esri_dictionary = new Esri::ArcGISRuntime::DictionarySymbolStyle(m_specificationType, m_symbologyResourcePath);
|
||||
// Qt6: use static createFromFile() method instead of constructor
|
||||
m_esri_dictionary = Esri::ArcGISRuntime::DictionarySymbolStyle::createFromFile(m_symbologyResourcePath);
|
||||
}
|
||||
|
||||
#endif // USE_ARCADE_SYMBOLOGY
|
||||
@@ -485,11 +486,9 @@ bool SymbolDictionaryImpl::init(SymbologyType symbologyType, const QString &symb
|
||||
|
||||
void SymbolDictionaryImpl::connectSignals()
|
||||
{
|
||||
if (m_esri_dictionary)
|
||||
{
|
||||
connect(m_esri_dictionary, &Esri::ArcGISRuntime::DictionarySymbolStyle::fetchSymbolCompleted,
|
||||
this, &SymbolDictionaryImpl::onFetchSymbolCompleted);
|
||||
}
|
||||
// Qt6/ArcGIS SDK v300: No signals to connect - using QFuture-based async API
|
||||
// fetchSymbolCompleted signal removed in SDK v300, replaced with QFuture pattern
|
||||
Q_UNUSED(m_esri_dictionary)
|
||||
}
|
||||
|
||||
|
||||
@@ -1350,7 +1349,11 @@ QSharedPointer<SymbolResult> SymbolDictionaryImpl::fetchSymbol(const SymbolDataT
|
||||
#define FETCH_SYMBOL_ETS_CONCURRENT
|
||||
#ifdef FETCH_SYMBOL_ETS_CONCURRENT
|
||||
// symDataToRender contains flag 'symDataToRender'
|
||||
symResult->setFuture(QtConcurrent::run(renderExtensions, extraImg, symDataToRender, colorToBeReplaced, symDataToRender.renderJustCoreImage));
|
||||
// Qt6: Use lambda to capture by value since renderExtensions takes QImage&
|
||||
symResult->setFuture(QtConcurrent::run([extraImg, symDataToRender, colorToBeReplaced]() mutable {
|
||||
QImage img = extraImg;
|
||||
return renderExtensions(img, symDataToRender, colorToBeReplaced, symDataToRender.renderJustCoreImage);
|
||||
}));
|
||||
|
||||
#else
|
||||
QImage imageCopy = extraImg;
|
||||
@@ -1463,37 +1466,29 @@ QSharedPointer<SymbolResult> SymbolDictionaryImpl::fetchSymbol(const SymbolDataT
|
||||
const QVariantMap keys({{QStringLiteral("sidc"), SidcCodec::decodeRawSidc(sidc)}, // set sidc of symbol in case of MIL2525
|
||||
{QStringLiteral("sic"), SidcCodec::decodeRawSidc(sidc)}}); // set sidc of symbol in case of APP6
|
||||
|
||||
Esri::ArcGISRuntime::TaskWatcher tw = m_esri_dictionary->fetchSymbol(keys);
|
||||
QUuid fsTaskId;
|
||||
if (tw.isValid())
|
||||
{
|
||||
fsTaskId = tw.taskId();
|
||||
// Qt6: Use QFutureWatcher instead of TaskWatcher
|
||||
auto *fetchTask = new SymbolFetchTask;
|
||||
fetchTask->fsTaskId = QUuid::createUuid();
|
||||
fetchTask->symbolResult = symResult.toWeakRef();
|
||||
|
||||
// store taskId in symResult:
|
||||
symResult->setTaskId(fetchTask->fsTaskId);
|
||||
|
||||
if (doParanoiaChecks())
|
||||
if (fsTaskId.isNull())
|
||||
abort();
|
||||
// and put into map to be able to inform customer if swatch is completed:
|
||||
m_findSymbol2symbolResult[fetchTask] = symResult.toWeakRef();
|
||||
m_activeFetchSymbolTasks.append(fetchTask);
|
||||
|
||||
// store taskId in symResult:
|
||||
symResult->setTaskId(fsTaskId);
|
||||
// Start async fetch and connect to finished signal
|
||||
QFuture<Esri::ArcGISRuntime::Symbol*> future = m_esri_dictionary->fetchSymbolAsync(keys);
|
||||
fetchTask->watcher.setFuture(future);
|
||||
connect(&fetchTask->watcher, &QFutureWatcher<Esri::ArcGISRuntime::Symbol*>::finished,
|
||||
this, &SymbolDictionaryImpl::onFetchSymbolCompleted, Qt::QueuedConnection);
|
||||
|
||||
// and put into map to be able to inform customer if swatch is completed:
|
||||
m_findSymbol2symbolResult[fsTaskId] = symResult.toWeakRef();
|
||||
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " TaskWatcher valid: fsTaskId=" << fsTaskId;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " TaskWatcher invalid"
|
||||
<< " ThreadId=" << QThread::currentThreadId();
|
||||
|
||||
if (doParanoiaChecks())
|
||||
abort();
|
||||
|
||||
}
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " QFutureWatcher created: fsTaskId=" << fetchTask->fsTaskId;
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END"
|
||||
<< " symDataToRender=" << symDataToRender.toString()
|
||||
<< " fsTaskId=" << fsTaskId;
|
||||
<< " fsTaskId=" << fetchTask->fsTaskId;
|
||||
return symResult;
|
||||
}
|
||||
} // switch(sidcType)
|
||||
@@ -1708,8 +1703,37 @@ QSharedPointer<SymbolResult> SymbolDictionaryImpl::findBaseSymbol(const QString
|
||||
|
||||
|
||||
|
||||
void SymbolDictionaryImpl::onFetchSymbolCompleted(QUuid fsTaskId, Esri::ArcGISRuntime::Symbol *symbol)
|
||||
void SymbolDictionaryImpl::onFetchSymbolCompleted()
|
||||
{
|
||||
// Qt6: Use dynamic_cast since QFutureWatcher doesn't have Q_OBJECT macro
|
||||
auto *watcher = dynamic_cast<QFutureWatcher<Esri::ArcGISRuntime::Symbol*>*>(sender());
|
||||
if (!watcher)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " Invalid sender (not a QFutureWatcher<Symbol*>)";
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the corresponding task
|
||||
SymbolFetchTask *fetchTask = nullptr;
|
||||
for (auto *task : m_activeFetchSymbolTasks)
|
||||
{
|
||||
if (&task->watcher == watcher)
|
||||
{
|
||||
fetchTask = task;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fetchTask)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " Task not found for watcher";
|
||||
watcher->deleteLater();
|
||||
return;
|
||||
}
|
||||
|
||||
QUuid fsTaskId = fetchTask->fsTaskId;
|
||||
Esri::ArcGISRuntime::Symbol *symbol = watcher->result();
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START"
|
||||
<< " symType= '" << this->symbologyType() << "'"
|
||||
<< " fsTaskId= '" << fsTaskId << "'"
|
||||
@@ -1726,10 +1750,15 @@ void SymbolDictionaryImpl::onFetchSymbolCompleted(QUuid fsTaskId, Esri::ArcGISRu
|
||||
if (doParanoiaChecks())
|
||||
abort();
|
||||
|
||||
// Cleanup
|
||||
m_activeFetchSymbolTasks.removeAll(fetchTask);
|
||||
m_findSymbol2symbolResult.remove(fetchTask);
|
||||
watcher->deleteLater();
|
||||
delete fetchTask;
|
||||
return;
|
||||
}
|
||||
|
||||
QSharedPointer<SymbolResult> symResult = m_findSymbol2symbolResult.value(fsTaskId);
|
||||
QSharedPointer<SymbolResult> symResult = m_findSymbol2symbolResult.value(fetchTask);
|
||||
if (!symResult)
|
||||
{
|
||||
// it´s legal, that the result does not exist anymore.
|
||||
@@ -1738,6 +1767,12 @@ void SymbolDictionaryImpl::onFetchSymbolCompleted(QUuid fsTaskId, Esri::ArcGISRu
|
||||
// So just a Debug msg:
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " SymbolResult not found or already been deleted"
|
||||
<< " fsTaskId= '" << fsTaskId << "'";
|
||||
|
||||
// Cleanup
|
||||
m_activeFetchSymbolTasks.removeAll(fetchTask);
|
||||
m_findSymbol2symbolResult.remove(fetchTask);
|
||||
watcher->deleteLater();
|
||||
delete fetchTask;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1769,55 +1804,72 @@ void SymbolDictionaryImpl::onFetchSymbolCompleted(QUuid fsTaskId, Esri::ArcGISRu
|
||||
// retrieve Image :
|
||||
//
|
||||
{
|
||||
connect(symbol, &Esri::ArcGISRuntime::Symbol::createSwatchCompleted,
|
||||
this, &SymbolDictionaryImpl::onSwatchCompleted);
|
||||
// Qt6: Use QFutureWatcher for createSwatchAsync
|
||||
auto *swatchTask = new SwatchTask;
|
||||
swatchTask->fsTaskId = fsTaskId;
|
||||
swatchTask->csTaskId = QUuid::createUuid();
|
||||
m_createSwatch2findSymbolTask[swatchTask] = fetchTask;
|
||||
m_activeSwatchTasks.append(swatchTask);
|
||||
|
||||
QFuture<QImage> future;
|
||||
#ifdef USE_ARCADE_SYMBOLOGY
|
||||
Esri::ArcGISRuntime::TaskWatcher tw;
|
||||
if (symResult->geometryType() == GeometryType::Polygon)
|
||||
// area/Polygon -> request rectangle, otherwise quadratic swatch:
|
||||
tw = symbol->createSwatch(CREATE_SWATCH_PARAMETER.m_width, CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_screenScale);
|
||||
future = symbol->createSwatchAsync(CREATE_SWATCH_PARAMETER.m_width, CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_screenScale);
|
||||
else
|
||||
tw = symbol->createSwatch(CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_screenScale);
|
||||
future = symbol->createSwatchAsync(CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_height, CREATE_SWATCH_PARAMETER.m_screenScale);
|
||||
#else
|
||||
Esri::ArcGISRuntime::TaskWatcher tw = symbol->createSwatch(CREATE_SWATCH_SCREEN_SCALE); // CREATE_SWATCH_SCREEN_SCALE
|
||||
future = symbol->createSwatchAsync(CREATE_SWATCH_SCREEN_SCALE); // CREATE_SWATCH_SCREEN_SCALE
|
||||
#endif // USE_ARCADE_SYMBOLOGY
|
||||
QUuid csTaskId;
|
||||
if (tw.isValid())
|
||||
{
|
||||
csTaskId = tw.taskId();
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " csTaskWatcher valid: csTaskId=" << csTaskId;
|
||||
|
||||
if (doParanoiaChecks())
|
||||
if (csTaskId.isNull())
|
||||
abort();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " csTaskWatcher invalid"
|
||||
<< " ThreadId=" << QThread::currentThreadId();
|
||||
|
||||
if (doParanoiaChecks())
|
||||
abort();
|
||||
|
||||
}
|
||||
|
||||
if (! csTaskId.isNull())
|
||||
m_createSwatch2findSymbolTaskId[csTaskId] = fsTaskId;
|
||||
else
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " csTaskWatcher invalid";
|
||||
|
||||
swatchTask->watcher.setFuture(future);
|
||||
connect(&swatchTask->watcher, &QFutureWatcher<QImage>::finished,
|
||||
this, &SymbolDictionaryImpl::onSwatchCompleted, Qt::QueuedConnection);
|
||||
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " swatchWatcher created: csTaskId=" << swatchTask->csTaskId;
|
||||
} // retrieve Image
|
||||
|
||||
// Cleanup fetch task (swatch task will handle final cleanup)
|
||||
m_activeFetchSymbolTasks.removeAll(fetchTask);
|
||||
m_findSymbol2symbolResult.remove(fetchTask);
|
||||
delete fetchTask;
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END"
|
||||
<< " fs-taskId= '" << fsTaskId << "'"
|
||||
// << " cs-taskId= '" << csTaskId << "'"
|
||||
<< " symbol= '" << symbol << "'";
|
||||
}
|
||||
|
||||
void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage &image)
|
||||
void SymbolDictionaryImpl::onSwatchCompleted()
|
||||
{
|
||||
// Qt6: Use dynamic_cast since QFutureWatcher doesn't have Q_OBJECT macro
|
||||
auto *watcher = dynamic_cast<QFutureWatcher<QImage>*>(sender());
|
||||
if (!watcher)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " Invalid sender (not a QFutureWatcher<QImage>)";
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the corresponding swatch task
|
||||
SwatchTask *swatchTask = nullptr;
|
||||
for (auto *task : m_activeSwatchTasks)
|
||||
{
|
||||
if (&task->watcher == watcher)
|
||||
{
|
||||
swatchTask = task;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!swatchTask)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " SwatchTask not found for watcher";
|
||||
watcher->deleteLater();
|
||||
return;
|
||||
}
|
||||
|
||||
QUuid csTaskId = swatchTask->csTaskId;
|
||||
QImage image = watcher->result();
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " START"
|
||||
<< " symType= '" << this->symbologyType() << "'"
|
||||
<< " csTaskId= '" << csTaskId << "'"
|
||||
@@ -1826,20 +1878,26 @@ void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage
|
||||
<< " image.colorTable().size()= '" << image.colorTable().size() << "'"
|
||||
<< " ThreadId=" << QThread::currentThreadId();
|
||||
|
||||
auto it = m_createSwatch2findSymbolTaskId.find(csTaskId);
|
||||
if (it == m_createSwatch2findSymbolTaskId.end())
|
||||
// map to external (findSymbol) task
|
||||
SymbolFetchTask *fetchTask = m_createSwatch2findSymbolTask.value(swatchTask);
|
||||
if (!fetchTask)
|
||||
{
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " no taskIdMapping"
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << " no fetchTask mapping"
|
||||
<< " csTaskId= '" << csTaskId << "'";
|
||||
|
||||
if (doParanoiaChecks())
|
||||
abort();
|
||||
|
||||
// Cleanup
|
||||
m_activeSwatchTasks.removeAll(swatchTask);
|
||||
m_createSwatch2findSymbolTask.remove(swatchTask);
|
||||
watcher->deleteLater();
|
||||
delete swatchTask;
|
||||
return;
|
||||
}
|
||||
|
||||
// map to external (findSymbol) taskId
|
||||
const QUuid &fsTaskId = it.value();
|
||||
const QUuid &fsTaskId = fetchTask->fsTaskId;
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " START"
|
||||
<< " fsTaskId= '" << fsTaskId << "'"
|
||||
<< " csTaskId= '" << csTaskId << "'";
|
||||
@@ -1847,11 +1905,11 @@ void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage
|
||||
//// emit findSymbolCompleted(fsTaskId, image);
|
||||
|
||||
|
||||
if (m_findSymbol2symbolResult.contains(fsTaskId))
|
||||
if (m_findSymbol2symbolResult.contains(fetchTask))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " SymbolResult found..." << " fsTaskId= '" << fsTaskId << "'";
|
||||
|
||||
QSharedPointer<SymbolResult> symResult = m_findSymbol2symbolResult[fsTaskId];
|
||||
QSharedPointer<SymbolResult> symResult = m_findSymbol2symbolResult[fetchTask];
|
||||
if (symResult)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " SymbolResult found and still valid..."
|
||||
@@ -1873,7 +1931,11 @@ void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage
|
||||
// start computation like:
|
||||
// QFuture<T> QtConcurrent::run(Function function, arg1, arc2...)
|
||||
// ^^^^^^^^^^ without()
|
||||
symResult->setFuture(QtConcurrent::run(renderExtensions, image, symToRender, QColor(), symToRender.renderJustCoreImage));
|
||||
// Qt6: Use lambda to capture by value since renderExtensions takes QImage&
|
||||
symResult->setFuture(QtConcurrent::run([image, symToRender]() mutable {
|
||||
QImage img = image;
|
||||
return renderExtensions(img, symToRender, QColor(), symToRender.renderJustCoreImage);
|
||||
}));
|
||||
|
||||
#else // CONCURRENT
|
||||
|
||||
@@ -1896,8 +1958,7 @@ void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage
|
||||
// }
|
||||
|
||||
// cleanup
|
||||
m_findSymbol2symbolResult.remove(fsTaskId);
|
||||
|
||||
m_findSymbol2symbolResult.remove(fetchTask);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1911,13 +1972,10 @@ void SymbolDictionaryImpl::onSwatchCompleted(const QUuid &csTaskId, const QImage
|
||||
|
||||
|
||||
// cleanup
|
||||
m_createSwatch2findSymbolTaskId.erase(it);
|
||||
|
||||
// see also: "SymbolDictionary - findSymbolCompleted without taskId"
|
||||
// https://earlyadopter.esri.com/project/forum/thread.html?cap=FA3A32558952489280FB472D26FA8192&forid={A612A2F3-E344-4BD0-A1EA-0CE2DA5E694E}&topid={432F3A6B-E323-4628-BF39-77DB7BAAC9A1}
|
||||
Esri::ArcGISRuntime::Symbol *symbol = qobject_cast<Esri::ArcGISRuntime::Symbol *>(sender());
|
||||
if (symbol)
|
||||
symbol->deleteLater();
|
||||
m_activeSwatchTasks.removeAll(swatchTask);
|
||||
m_createSwatch2findSymbolTask.remove(swatchTask);
|
||||
watcher->deleteLater();
|
||||
delete swatchTask;
|
||||
|
||||
TRACE_LOG(m_logger) << LOGFUNCTION << " END"
|
||||
<< " symType= '" << this->symbologyType() << "'"
|
||||
@@ -2130,7 +2188,7 @@ QImage renderExtensions(QImage &coreImage,
|
||||
#endif // USE_ARCADE_SYMBOLOGY
|
||||
|
||||
// replace honoring the hotSpot by simple scaling :
|
||||
int hqFdTf = QStringView(sidc).slice(7, 1).toInt();
|
||||
int hqFdTf = QStringView(sidc).sliced(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();
|
||||
@@ -2326,7 +2384,7 @@ QString SymbolDictionaryImpl::toString() const
|
||||
str.append(QStringLiteral(" SymbologyType=%1").arg(AdvancedSymbology::toString(m_symbolDictionaryType_own)));
|
||||
str.append(QStringLiteral(" m_symbologyResourcePath='%1'").arg(m_symbologyResourcePath));
|
||||
|
||||
str.append(QStringLiteral(" m_createSwatch2findSymbolTaskId.size=%1").arg(m_createSwatch2findSymbolTaskId.size()));
|
||||
str.append(QStringLiteral(" m_createSwatch2findSymbolTask.size=%1").arg(m_createSwatch2findSymbolTask.size()));
|
||||
str.append(QStringLiteral(" m_findSymbol2symbolResult.size=%1").arg(m_findSymbol2symbolResult.size()));
|
||||
|
||||
return str;
|
||||
@@ -2349,8 +2407,7 @@ QStringList SymbolDictionaryImpl::textFieldNamesInternal() const
|
||||
void SymbolDictionaryImpl::onErrorDictionary(const Esri::ArcGISRuntime::Error &error)
|
||||
{
|
||||
FATAL_LOG(m_logger) << LOGFUNCTION << " ---EsriError--- occured: "
|
||||
<< " code=" << error.code()
|
||||
<< ", domain=" << static_cast<int>(error.domain())
|
||||
<< " domain=" << static_cast<int>(error.domain())
|
||||
<< ", extendedErrorType=" << static_cast<int>(error.extendedErrorType())
|
||||
<< ", message='" << error.message() << "'"
|
||||
<< ", additionalMessage='" << error.additionalMessage() << "'";
|
||||
|
||||
Reference in new issue
Block a user