Files
qt-migration-legatus/qt5-before/dlbo/Lts/Viewer/SituationMap/Tests/exampleSvgRenderer/exampleMain.cpp
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

109 lines
2.3 KiB
C++

/**
* @RDE_HEADER@
* Interface
* $Id$
* $HeadURL$
* $Author$
*/
#include <QtWidgets/QApplication>
#include <QMainWindow>
#include <QPainter>
#include <QImage>
#include <QSvgGenerator>
#include <QSvgRenderer>
void renderImpactSymbol(QPainter& painter)
{
// From SymbolDictionaryExtendedImpl::renderImpactSymbol
QColor color = Qt::red;
int size = 100;
bool filled = false;
QPen pen(color);
pen.setWidth(2);
painter.setPen(pen);
const int sizeHalf = size/2.0;
QPointF center(sizeHalf, sizeHalf);
// circle
if (filled)
painter.setBrush( color );
painter.drawEllipse(center, sizeHalf*0.5, sizeHalf*0.5);
// // lines
// QLine newLine(0, sizeHalf, size, sizeHalf);
// painter.drawLine(newLine);
// QTransform trans;
// trans.translate(sizeHalf, sizeHalf);
// trans.rotate(45);
// trans.translate(-sizeHalf, -sizeHalf);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
}
int main (int argc, char* argv[])
{
QApplication app ( argc, argv );
// under windows for ArcGIS 10.2.6 and higher
#ifdef Q_OS_WIN
QCoreApplication::setAttribute( Qt::AA_UseOpenGLES );
#endif
int fullSize = 100;
QImage image(fullSize, fullSize, QImage::Format_ARGB32);
image.fill(qRgba(0,0,0,0));
{
// Image:
QPainter painterI(&image);
renderImpactSymbol(painterI);
painterI.end();
image.save(QLatin1String("dummy.png"));
// SaveSvg:
QSvgGenerator generator;
generator.setFileName(QLatin1String("dummy.svg"));
generator.setSize(QSize(100, 100));
generator.setViewBox(QRect(0, 0, 100, 100));
generator.setTitle(QLatin1String("SVG Generator Example Drawing"));
generator.setDescription(QLatin1String("An SVG drawing created by the SVG Generator"));
QPainter painterSvg;
painterSvg.begin(&generator);
renderImpactSymbol(painterSvg);
painterSvg.end();
}
{
QSvgRenderer svgRenderer;
QImage image(fullSize, fullSize, QImage::Format_ARGB32);
image.fill(qRgba(0,0,0,0));
QPainter painter(&image);
svgRenderer.load(QLatin1String("manualDummy.svg"));
svgRenderer.render(&painter);
painter.end();
image.save(QLatin1String("manualDummy.png"));
}
return app.exec();
}