- QT5_ADD_RESOURCES was a no-op stub under Qt6, silently dropping .qrc
files: LogView's :/image/* icons were never compiled into the binary.
Map the stub onto qt6_add_resources() (outfiles-variable form, which
appends the generated qrc_*.cpp to the source list). LogView is the
only caller of the stub.
- nglwidgets' Qt6 branch only processed rme_light_style.qrc;
nglresources.qrc (which provides :icons/16x16/* toolbar/window icons)
was left as a raw file in the source list and never compiled
(CMAKE_AUTORCC is off). Process both qrcs.
- LogView never loads libnglwidgets.so at runtime (--as-needed drops it:
the code uses no nglwidgets symbols), so its :icons/16x16 resources
were never registered for the app. Embed the 20 icons LogView actually
uses directly into LogViewResources.qrc with explicit aliases (rcc
rejects XML comments in .qrc and, without an alias, registers the full
relative path as the resource name).
Audited the release-scope compilation (TetraIF, Z/src, Lts/Common +
TrainingAreaBase, BUILD_RTI=OFF) for every file under include/:
Removed (zero references from release-scope sources or CMake):
- service-stub header dirs (AlarmManagement, AreaEffectSimulation,
AssetManagement, AudioVideoManagement, Core, ExerciseEventManagement,
ExerciseManagement, GuezNasat, InfrastructureManagement, Lts,
LtsProjectionWorkstation, LtsScriptTimeline, LtsSession,
MarkerManagement, NotificationManagement, OperatorManagement,
ParticipantManagement, ProjectDataManagement, ReportManagement,
Services, SituationReplay, TopicEditorBase, Viewer)
- include/grantlee (codegen modules excluded from the release build)
- include/nglapplication (all headers duplicate Z/src/nglapplication)
- include/poppler (Qt5 header; the build includes poppler/qt6 from the
system package)
- include/rti (142 Connext DDS headers; only consumers are behind
BUILD_RTI, which is OFF for this branch)
- TetraIF/LogView zsksxd_tetraForLogView{,_guez}.cpp and
zsksxd_tetraForLogView_guez.x (the build compiles the .x; the guez
variant is referenced nowhere; LogView loads the .x from the app dir)
Kept (actively included): include/GeographicLib, include/LtsUtilsGuiDds,
include/NGLLogger.
Also drop the now-dangling include_directories for the removed dirs in
the top-level CMakeLists (include/Viewer/SituationMap) and
Lts/CMakeLists.txt (six stub dirs) - otherwise GCC warns
-Wmissing-include-dirs for every compile.
Verified with a full pipeline rebuild (scope-rebuild15): 0 warnings,
ctest baseline unchanged, all 5 DEBs produced.
- LogViewModels: replace deprecated invalidateFilter() with
begin/endFilterChange() (11 sites)
- LogViewTelegramEdit: move m_logger to match member declaration order
(-Wreorder) and consume QFile::open results
- PrtCnvBroadcastMgr: move m_logger to match member declaration order
(-Wreorder)
- PrtCnvCentralThread: add remaining AreaEffectSimulationType values to
the silent-ignore switch group (-Wswitch)
- PrtCnvMain: consume freopen results in daemonize (-Wunused-result)
- LogViewTelegramDialog.hpp: Fixed default parameter to use N_LogView::getLogger()
- LogViewTelegram.cpp: Added logger.h include, fixed both constructor initializations
- getLogger() is defined in N_LogView namespace, not NGL namespace
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add m_logger member variable to LogViewTelegramEdit.hpp
- Initialize m_logger in LogViewTelegramEdit constructor
- Replace Qt::SystemLocaleLongDate with Qt::TextDate for Qt6 compatibility
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- LogViewField.hpp: Changed Logger& to NGL::INGLLogger& for m_logger member
- LogViewInjectionThread.hpp: Changed Logger& to NGL::INGLLogger& for m_logger member
- Both headers already include logger.h which defines LOGGER_T as NGL::INGLLogger&
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Migrated QStringRef to QStringView in LogViewTetraTelegramsParser
- Updated tokenize() function signature and implementation
- Updated bracketCount() helper function
- Updated validStructTokens() function
- Updated parseStruct(), parseEnum(), parseConstraint() functions
- Migrated QStringRef to QStringView in LogViewGui.cpp
- Updated splitRef() to splitView() calls
- Updated QVector<QStringRef> to QVector<QStringView>
- Migrated QStringRef to QStringView in LogViewXdrParser.cpp
- Updated midRef() to mid() calls
- Updated leftRef() to left() calls
- Updated Qt6 include paths: QAbstractTableModel and QModelIndex moved to QtCore
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Code fixes:
- PrtCnvApplication.hpp: Add missing m_logger member variable, change QMutex to QRecursiveMutex (Qt6 deprecated QMutex::Recursive)
- PrtCnvApplication.cpp: Fix constructor initialization for m_logger, remove QMutex::Recursive initialization
- PrtCnvBroadcastMgr.hpp: Add missing m_logger member declaration
- PrtCnvBroadcastMgr.cpp: Fix constructor initialization order for m_logger and m_loggerBcRequest
- PrtCnvCentralThread.cpp: Fix include path from LtsUtils/dds_bitarray.h to LtsUtilsCore/dds_bitarray.h
- LogViewTelegramEditModel.hpp: Fix QAbstractTableModel include from QtGui to QtCore (Qt6 API change)
- TetraIF/CMakeLists.txt: Remove IF(BUILD_RTI) wrapper to match Qt5 behavior (no conditional wrapper)
- CoPrtCnv/CMakeLists.txt: Remove redundant find_package(Qt6) calls in else branch
Build script updates:
- new_docker_build.sh: Add CoPrtCnv, PrtCnvLib, PrtCnv to GROUP6_TARGETS
- new_docker_build.sh: Comment out tDataSampleGenerator and tDataSampleReceiver (pre-existing RTI DDS API errors unrelated to TetraIF migration)
Test files:
- Remove test_tetraif_coprtcnv.cpp, test_tetraif_prtcnv.cpp, test_tetraif_logview.cpp
These tests included generated export headers (coprtcnv_export.h) not available at test compile time
Validation:
- Docker build completed successfully with BUILD_RTI=ON BUILD_GRANTLEE=ON
- All TetraIF components (CoPrtCnv, PrtCnvLib, PrtCnv, LogViewer) build successfully
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- avm_mvs_video_team_gui_plugin.cpp: QApplication::desktop() → QGuiApplication::primaryScreen()
- LogViewTelegramDialog.cpp: QApplication::desktop() → QGuiApplication::primaryScreen()
- Added QGuiApplication includes where needed
- Removed duplicate QScreen include
This completes the QDesktopWidget API migration across all modules.
QApplication::desktop() is deprecated in Qt5 and removed in Qt6.
Replacement: QGuiApplication::primaryScreen()->geometry() or availableGeometry().
Refs: Qt6 migration, C++17 constraint due to RTI Connext DDS 7.7.0 incompatibility
TrainingAreaBase:
- Add BUILD_RTI guards to dds_handler.cpp (entire file)
- Add BUILD_RTI guards to recv_from_dds_aes.h for tab_db.h include
- Add BUILD_RTI guards to main_handler.h for tab_db.h include
- Remove duplicate m_logger declaration in main_handler.h
- Add stub headers for RTI types (tab_db_stub.hpp, tab_enums_stub.hpp, etc.)
VideoOverlayManagement:
- Fix member initialization order in handler_overlays.h
- Fix member initialization order in avs_interface.h
- Fix member initialization order in main_handler.h
- Change logger.cpp include from NGLLogger.h to INGLLogger.h
- Add BUILD_RTI guard to handler_overlays.cpp for RTI signal connection
Plugins:
- Migrate QDesktopWidget → QScreen in Light/Dark style plugins
- Fix CMakeLists.txt for SituationReplayManagement (BUILD_RTI guards)
- Fix CMakeLists.txt for CombatNetRadio (Qt6::Core linking)
- Remove QDesktopWidget includes in multiple plugin files
Infrastructure:
- Remove duplicate INGLLogger.h include directory
- Add stub headers for ProjectDataManagement (pdm.hpp, etc.)
- Add stub headers for RoutingServiceNG
BUILD_RTI=OFF build now compiles successfully (1112 targets).