Files
qt-migration-legatus/qt5-before/dlbo/Lts/Viewer/SituationMap/Tests/SitMapTestApp/mainwindow.h
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

202 lines
5.5 KiB
C++

/**
* @RDE_HEADER@
*
* MainWindow for DDS View
*
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <Common/ref_pointer.h>
#include <nglwidgets/nglmainwindow.h>
#include <Map/map.h>
#include <Map/grid.h>
#include <MapObjects/building_outline.h>
#include <MapObjects/danger_area.h>
#include <MapObjects/hit_line.h>
#include <MapObjects/area_fire.h>
#include <MapObjects/biological_agent.h>
#include <Rubberbands/rubberband_factory.h>
#include "nglsettings.h"
#include <LtsCoordTrans/lts_coord_trans.h>
namespace Ui {
class widgetMain;
}
class MainWindow : public NGLMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void init();
private:
Ui::widgetMain* m_ui;
// map
SituationMap::Map* m_map = nullptr;
// map settings
float m_scale = 500000.0;
int m_wkid = 32632;
QPointF m_objectBasePoint = QPointF(0, 0);
// QPointF m_objectCenterPoint = QPointF(0, 0);
LtsCoordTrans::UtmCoordinate s_basePoint;
// map objects
// buildings
SituationMap::RefPointer<SituationMap::BuildingOutline> m_building;
QMap<int /*buildingId*/, SituationMap::RefPointer<SituationMap::BuildingOutline> > m_buildingMap;
//danger areas
SituationMap::RefPointer<SituationMap::DangerArea> m_dangerArea;
QMap<int /*dangerAreaId*/, SituationMap::RefPointer<SituationMap::DangerArea> > m_dangerAreaMap;
//fire areas
SituationMap::RefPointer<SituationMap::AreaFire> m_fireArea;
QMap<int /*fireAreaId*/, SituationMap::RefPointer<SituationMap::AreaFire> > m_fireAreaMap;
// B agents
SituationMap::RefPointer<SituationMap::BiologicalAgent> m_bAgent;
QMap<int /*bAgentId*/, SituationMap::RefPointer<SituationMap::BiologicalAgent> > m_bAgentMap;
// Fire line
SituationMap::RefPointer<SituationMap::HitLine> m_hitLine;
QMap<int /*hitLineId*/, SituationMap::RefPointer<SituationMap::HitLine> > m_hitLineMap;
//settings
bool m_visibility = true;
bool m_visibilityTechn = true;
bool m_visibilityTact = true;
void setVersionView();
//timer for update buildings
QTimer* m_timer;
SituationMap::LOGGER_T m_logger;
private slots:
void onClose();
// map
void createMap();
void destroyMap();
void onMapReady();
void onExtentChanged();
void onMapObjectClicked( const SituationMap::Map::RefPointerMapObjectList &mapObjList );
void updateMapObjects();
void clearMapObjects();
// buildings
void createBuildings();
void createBuilding(int objId);
void removeBuildings();
void removeBuilding(int objId);
void onBuildingUpdate(int objId);
void hideBuildings();
void hideBuilding(int objId);
//danger areas
void createDangerAreas();
void createDangerArea(int objId);
void removeDangerAreas();
void removeDangerArea(int objId);
void onDangerAreaUpdate(int objId);
void hideDangerAreas();
void hideDangerArea(int objId);
//fire areas
void createFireAreas();
void createFireArea(int objId);
void removeFireAreas();
void removeFireArea(int objId);
void onFireAreaUpdate(int objId);
void hideFireAreas();
void hideFireArea(int objId);
// b agents
void createBAgents();
void createBAgent(int objId);
void removeBAgents();
void removeBAgent(int objId);
void onBAgentUpdate(int objId);
void hideBAgents();
void hideBAgent(int objId);
// fire lines
void createHitLines();
void createHitLine(int objId);
void removeHitLines();
void removeHitLine(int objId);
void onHitLineUpdate(int objId);
void hideHitLines();
void hideHitLine(int objId);
// rubberbands
void rubberbandPointCluster();
void rubberbandMultiPoint();
void rubberbandRectangle();
void rubberbandSquare();
void rubberbandEllipse();
void rubberbandArrow();
void rubberbandCorridorBoundary();
void rubberbandCorridorCenterline();
void rubberbandFilledMultiPoint();
void rubberbandSmoothLine();
void rubberbandFilledSmoothLine();
void rubberbandCreateRectangle(int objId, int noPoints, bool isSquare);
void rubberbandCreateRectangles();
void rubberbandCreateSquares();
void rubberbandCreateEllipse(int objId, int noPoints);
void rubberbandCreateEllipses();
void rubberbandCreatePointClusters();
void rubberbandCreatePointCluster(int objId, int noPoints);
void rubberbandCreateMultiPoints();
void rubberbandCreateMultiPoint(int objId, int noPoints, bool filled = false);
void rubberbandCreateFilledMultiPoints();
void rubberbandCreateSmoothLines();
void rubberbandCreateSmoothLine(int objId, int noPoints, bool filled = false);
void rubberbandCreateFilledSmoothLines();
void rubberbandCreateCorridorBoundaries();
void rubberbandCreateCorridor(int objId, int noPoints, bool bound = false);
void rubberbandCreateCorridorCenterlines();
void rubberbandCreateArrows();
void rubberbandCreateArrow(int objId, int noPoints);
// void onRubberbandApply( SituationMap::RB::Rubberband * rubberband);
void onRubberbandAbort( SituationMap::RB::RubberbandBase * rubberband);
void onRubberbandPointClusterApply(SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandMultiPointApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandRectangleApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandEllipseApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandSmoothLineApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandArrowApply( SituationMap::RB::RubberbandBase *rubberband);
void onRubberbandCorridorApply(SituationMap::RB::RubberbandBase *rubberband);
void endRubberband( SituationMap::RB::RubberbandBase *rubberband);
};