Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Application/THP
Berrux Kana 3f7beb3c7e Qt6 migration: build fixes for Groups 10/11 + missing plugin modules
Continue the Qt5->Qt6 migration so the LTS Projects (Group 10) and LTS
Application (Group 11) compile, link, and ctest runs.

Qt5->Qt6 API migration (resolves removed/deprecated Qt6 APIs) across Lts
Tools and Apps, e.g. QAction->QActionGroup, QAbstractSocket::errorOccurred,
Qt::SkipEmptyParts, QRandomGenerator, QInputDevice::DeviceType,
QRegularExpression, QLatin1Literal->QStringLiteral, and the SampleModel
m_description->description rename.

CMake build fixes:
- CMakeLists.txt: add Lts/Common to CMAKE_AUTOMOC_INCLUDE_DIRECTORIES so moc
  resolves Q_INTERFACES(ProjectPlugin::Plugin) for the migrated Projects.
- cmake/NGLMacros.cmake: NGL_COMPILE_RESOURCES - replace return() (which aborts
  the calling CMakeLists.txt) with an if/else/endif.
- OpApp/THP: guard the ArcGISQt5Hack link with $<IF:$<TARGET_EXISTS:...>> (the
  target is absent when the SituationMap viewer is stubbed); matches
  CentralEffectSimulation.
- LtsSession: prefer the in-tree svcCoreClient target over a FIND_LIBRARY in
  /usr/local/lib.
- CnrProxyTester/DotMatrixDisplay: set AUTOUIC_SEARCH_PATHS for the ui/ subdir.
- TopicDiscover: link NGLLogger.

Export-header visibility stubs (expand the empty *_EXPORT macro to
__attribute__((visibility("default"))); the build sets -fvisibility=hidden and
these stubs shadow the CMake-generated header):
- include/LtsProjectionWorkstation/ltsprojectionworkstation_export.h (fixes
  undefined reference to LtsProjectionWorkstation::getInstance /
  setProjectionOperatorPreset)
- include/LtsSession/ltssession_export.h, include/LtsUtilsGuiDds/ltsutilsguidds_export.h (same pattern)

New plugin modules (copied from legacy) so LtsAppDescriptorChecker finds the
gui:3 IIDs referenced by the Projects' apps.json:
- TakeHomePackageManager/OldTHP              gui:3:tpm.man, gui:3:tpm.usb
- PresentationManagement/.../ScriptEditor   gui:3:pre.script.edit
- Timeline/Gui/EventTimelineClassic         gui:3:tln.view

new_docker_build.sh: correct group targets to the actual CMake target names,
guard LtsReportDisplay on BUILD_CODIFICATION, and skip modules unavailable in
the prebuilt image (AsmWorkstationCertifier/botan2, TrajectoryWidget,
VideoImport, thp_viewer/VLC).
2026-10-05 10:49:34 +02:00
..

#
# Hinweise für das THP
#
# $Id$
# $HeadURL$
# $Author$
#

N. Thoden, 12.03.2020

Das TakeHomePackage (für Windows) besteht aus 3 Komponenten:
============================================================

1) den THP-Viewer / THP-Starter
   (inkl. Qt ;  ohne MSVCRuntime, z.B. msvcr120.dll, in C:\Windows\system32 !?)
   http://jenkins-master.sl.defence-elec.de:8080/job/ahtc_OC-Tablet/
   thp.tgz
2) die Kartendaten
   (evtl. für den Datenträger reduziert in Bezug auf die Speichergröße)
3) die Topic-Daten (Video, Audio, DB-Abzug...)


Woher kommt was?
================
1) Der THP-Viewer / THP-Starter
   Kann aus der CI-Umgebung (Jenkins) heruntergeladen werden (thp.tgz)
   Am besten mit 7Zip entpackt werden:
   (tgz -> gepackt und anschliessend komprimiert)
    - Per Kontext-Menue "entpacken nach hier"
    - die resultierende Datei "thp' "entpacken nach thp~".
    Dann sollte ein Verzeichnis "thp" MIT diversen Unterverzeichnissen entstehen.

   Das THP-Verzeichnis wird auf jeder Workstation im Ordner /opt/THP als Quelle für den USB-Datentraeger bereitgestellt.

2) Diese werden manuell für das THP bereitgestellt (meist als tpk-Datei).

3) Die Topic-Daten werden in der OpApp mit "Präsentation exportieren" erzeugt.
   Sie werden unter /tmp/THP-Export generiert.


Woher kommt das Verzeichnis 'Maps'?
===================================
Der Verzeichnisname 'Maps' ist fest und darf nicht verändert werden.
Es müssen die für das Medium (CD, DVD, Stick..) passenden Basiskarten/Kartendaten hinein.
Das sind also z.B.
  - 2020-03-03_UaeAerial_32639_Lvl6.tpk
  - 2020-03-03_UaeAerial_WebMerc_Lvl15.tpk
  - 2020-03-03_UaeTopo_32639_Lvl6.tpk
  - 2020-03-03_UaeTopo_WebMerc_Lvl15.tpk
  - AHTC_utm_dgm_surface_wgs84.tif

Das layerMapping.json hat nun die Aufgabe, diese (für das Übungsgebiet) spezifischen
Dateinamen zu abstrahieren.
Die bei der Ausführung des THPs geforderten Basiskarten (Annahme: eine Topo und zwei Aerial)
können mit Hilfe der layerMapping.json auf eine geringere Anzahl Dateien gemappt werden.

Basiskarten: Mapping per layerMapping.json
   in der WS-App:                           Dateien in Dir 'Maps'
   --------------                           ---------------------
 - Aerial2            ->                    2020-03-03_UaeAerial_32639_Lvl6.tpk
 - Aerial1            ->                    2020-03-03_UaeAerial_32639_Lvl6.tpk
 - Topo               ->                    2020-03-03_UaeTopo_32639_Lvl6.tpk

Best Practise:
Daher ergibt es Sinn, eine layerMapping.json in dem Verzeichnis 'Maps' vorzubereiten
und beim Zusammengefügen in die darüberliegende Dateiebene zu kopieren.


Wie müssen die 3 Komponenten zusammengefügt werden?
===================================================

Device:
  - Excersise_6
    - 1                          <- Übungsdaten (Komponenten 3)
      - ...
    - index.html                 <- Übungsdaten (Komponenten 3)
    - ...                        <- Übungsdaten (Komponenten 3)

    - Maps                       <- Kartendaten (Komponenten 2)
      - *.tpk
      - [layerMapping.json]      <- Sonderfall AHTC 03/2020: Diese Datei in
                                    die darüberliegende Ebenen verschieben.
    - layerMapping.json          <- Übungsdaten (Komponenten 2/3)
                                    (generiert, Sonderfall AHTC 03/2020:
                                    aus 'Maps' hierher transferieren)

    - thp                        <- thp (Komponenten 1)
      - resources                <- thp (Komponenten 1), hat mal gefehlt)
      - thv_viewer.exe           <- thp (Komponenten 1)
      - vc.redist.x64.exe        <- thp (Komponenten 1), für MSVCRuntime
    - thp_starter.exe            <- thp (Komponenten 1)
    - autorun.inf                <- thp (Komponenten 1)
    - [wappen.png]               <- thp (Komponenten 1 oder 3) optional !?


Logfiles zuir Fehlersuche
=========================
Ein Logfile befindet sich unter ~Benutzer\AppData\Local\Temp\.
Bsp: C:\User\thoden\AppData\Local\Temp\thoden_thp.log
     C:\User\thoden\AppData\Local\Temp\thoden_thp.log.1